c 在程序里面,需要加入使用common control的宏:InitCommonControls()否则,程序会闪一下就会退出的。因为程序没有申请到该有的资源。 加入对slider control的声明后。需要处理slider control的一些事件。这是需要特别注意的是,slider control不像radio control那样子直接用SDK API就可以处理了。需要特殊的消息机制,下面一一道来:2.1 获得控件的窗口句柄。slider control也是一个窗口,是对话框的子窗口,因此,要用GetDlgItem来实现:backlight_wnd = GetDlgItem(hDlg, IDC_SLIDER_BACKLIGHT)2.2 设置slider control的区间,是给slider control发TBM_SETRANGE消息,比如我设置0到100就是:SendMessage(backlight_wnd,TBM_SETRANGE, (WPARAM)1,(LPARAM)MAKELONG(0,100))2.3 设置滑块的初始位置是发送TBM_SETPOS消息来实现的: SendMessage(backlight_wnd,TBM_SETPOS, (WPARAM)1,(LPARAM)BacklightPercentage)
2.4 slider control和用户的交互,则是通过WM_HSCROLL消息来实现的,需要在WM_HSCROLL的响应函数里面发送TBM_GETPOS消息得到当前滑块的位置:BacklightPercentage = (unsigned char)SendMessage(backlight_wnd,TBM_GETPOS,0,0)2.5 旁边的一个当前刻度的数字的说明,需要先设定一个Static text文本控件,然后动态给该控件发送WM_SETTEXT消息来实现动态的更新数字:SendMessage(GetDlgItem(hDlg, IDC_STATIC_BACKLIGHT_VALUE), WM_SETTEXT, 0, LPARAM(szBacklightPercentage))最后面的那个参数,szBacklightPercentage是一个字符串。3 如何在对话框里面显示图标或者图片:如果程序没有图片,总是显得十分的死板,因此,在程序上面显示图片,图标是必要的美化程序的方法。网上关于程序显示图片的说明也很多。但是都比较的复杂。如果仅仅显示静态的图标,其实不用那么复杂的。3.1 需要好的icon素材。漂亮的icon素材就如程序的脸蛋一样。是必须的,要得到好的icon素材,第一是到网上“淘宝”。看看能不能找到你满意的。另外也有搜索自己电脑上漂亮图标的工具。因为windows自己也提供了很多的图标资源。这里推荐一个叫做 IconExtract 的小软件。大家可以网上下载,它可以很方便的把本地的图标都挖出来。一般情况下,够我们用的了。找好自己喜欢的图标之后,记得在资源里面的icon项目下引用进来。3.2 显示图标:如果不是动态显示,就只是简单的在对话框上面加picture控件,然后在属性里面指定icon的来源即可。4 如何响应电源插拔事件:在笔记本上面,ac电源插上和拔出的时候,会有背光亮度的改变,因此需要在知道这个电源来源改变的时候来重新获得当前背光,经查询,程序需要响应WM_POWERBROADCAST消息。如果wParam是PBT_APMPOWERSTATUSCHANGE,就需要重新获得当然背光: case WM_POWERBROADCAST:
if (wParam == PBT_APMPOWERSTATUSCHANGE) // Power source maybe changed, check the backlight again.
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_ICON_CONFIG2)// IDI_SMALL这样子修改之后,你会发现,程序运行的显示图标是改变了。但是程序exe的图标还是没有改变,这是因为exe和dll默认都显示id为最低的那个icon的图标。因此,在resource.h里面把自己希望显示的图标id和现有的程序图标id换一下就可以了。#define IDI_ICON_CONFIG2 107 // make sure the icon ID is lowest.
好了。
exe获取参数用ParamCount(),ParamStrif( ParamStr(1) == "a" )
{
}
else if( ParamStr(2) == "b" )
{
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)