標籤:sdk windows win32 mfc
一、對話方塊
1、對話方塊的分類
2、對話方塊的基本使用方式
3、對話方塊資源
4、有強制回應對話方塊的使用
5、 無強制回應對話方塊的使用
5.1 添加對話方塊資源
5.2 定義視窗處理函數
BOOL CALLBACK DialogProc(
HWND hWnd,
UINT UMsg,
WPARAM wParam,
LPARAM lParam
)
5.3 建立對話方塊
HWND CreateDialog( HINSTANCE hInstance, // handle to module LPCTSTR lpTemplate, // dialog box template name HWND hWndParent, // handle to owner window DLGPROC lpDialogFunc // dialog box procedure);
返回值是建立好的對話方塊視窗控制代碼
5.4 顯示對話方塊
ShowWindow
5.5 關閉對話方塊
EndDialog
5.6 與有強制回應對話方塊相比
建立函數:有模式建立對話方塊 DialogBox
無強制回應對話方塊; CreateDialog
程式執行方式:有強制回應對話方塊阻塞,禁止其他視窗輸入。
無強制回應對話方塊會立刻返回讓主程式繼續執行
6 對話方塊訊息
WM_INITDIALOG訊息,用途類似於WM_CREATE訊息,可以再對話方塊建立完成後 進行資料初始化
他與WM_CREATE不同的是,WM_INITDIALOG訊息會在對話方塊資源模板上的所有子控制項(按鈕等)建立完成後再發送給對話方塊視窗處理函數
wParam - 當前接受輸入焦點子控制項視窗控制代碼
lParam - 建立時附帶的參數
7 對話方塊和普通視窗的對比
7.1 建立方式不同
普通視窗 CreateWindow/Ex
對話方塊: DialogBox/CreateDialog
7.2 訊息
普通視窗:會收到WM_CREATE
對話方塊: WM_INITDIALOG
7.3 關閉方式
普通視窗 : DestroyWindow等
對話方塊: EndDialog
二 子控制項
1 由 Windows系統定義的視窗類別型可以提供
相應的功能,包括按鈕,文本編輯框, 靜態框
2 空間的建立
都可以使用CreateWindow/CreateWindowEx建立, 並擷取到空間HWND。建立時每個子控制項都要有相應的ID號,
ID號盡量要求不重複。
1.3 控制項的訊息
子控制項和父視窗(一般視窗或者對話方塊)的交換都是通過訊息完成的。如果子視窗狀態發生變化,子視窗會向父視窗發送
相應的訊息,
一般父視窗會使用SendMessage向子視窗發送訊息,同時父視窗響應子視窗發送的訊息一般在WM_COMMAND中進行處理
三 靜態框
1 靜態框的建立
視窗類別的名稱 - STATIC, 用於視窗上顯示文字等,如果使用SS_ICON、SS_BITMAP風格可以顯示ICON和BITMAP
文本靜態框 - 建立時使用SS_SIMPLE即可
ICON靜態框 - 建立時使用SS_ICON, 並且將靜態框的視窗名稱設定成對應的ICON的資源ID號,例如 “#101”
2 靜態框的命令響應
2.1 驚天狂要添加SS_NOTIFY風格
2.2 WM_COMMAND 進行處理
WPARAM - HIWORD 命令ID
LOWORD 靜態框的視窗ID
LPARAM - 靜態框創庫控制代碼
3 靜態框相關訊息