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.
好了。