《MFC編程之Windows消息(2)》要點:
本文介紹了MFC編程之Windows消息(2),希望對您有用。如果有疑問,可以聯系我們。
相關主題:桌面軟件開發
WM_MOUSEFIRST=$0200;
WM_MOUSEMOVE=$0200; //移動鼠標
WM_LBUTTONDOWN=$0201; //按下鼠標左鍵
WM_LBUTTONUP=$0202; //釋放鼠標左鍵
WM_LBUTTONDBLCLK=$0203; //雙擊鼠標左鍵
WM_RBUTTONDOWN=$0204; //按下鼠標右鍵
WM_RBUTTONUP=$0205; //釋放鼠標右鍵
WM_RBUTTONDBLCLK=$0206; //雙擊鼠標右鍵
WM_MBUTTONDOWN=$0207; //按下鼠標中鍵
WM_MBUTTONUP=$0208; //釋放鼠標中鍵
WM_MBUTTONDBLCLK=$0209; //雙擊鼠標中鍵
WM_MOUSEWHEEL=$020A; 當鼠標輪子轉動時發送此消息個當前有焦點的控件
WM_MOUSELAST=$020A;
WM_PARENTNOTIFY=$0210; 當MDI子窗口被創建或被銷毀,或用戶按了一下鼠標鍵而光標在子窗口上時發送此消息給它的父窗口
WM_ENTERMENULOOP=$0211; 發送此消息通知應用程序的主窗口that已經進入了菜單循環模式
WM_EXITMENULOOP=$0212; 發送此消息通知應用程序的主窗口that已退出了菜單循環模式
WM_NEXTMENU=$0213;
WM_SIZING=532; 當用戶正在調整窗口大小時發送此消息給窗口;通過此消息應用程序可以監視窗口大小和位置也可以修改他們
WM_CAPTURECHANGED=533; 發送此消息給窗口當它失去捕獲的鼠標時;
WM_MOVING=534; 當用戶在移動窗口時發送此消息,通過此消息應用程序可以監視窗口大小和位置也可以修改他們;
WM_POWERBROADCAST=536; 此消息發送給應用程序來通知它有關電源管理事件;
WM_DEVICECHANGE=537; 當設備的硬件配置改變時發送此消息給應用程序或設備驅動程序
WM_IME_STARTCOMPOSITION=$010D;
WM_IME_ENDCOMPOSITION=$010E;
WM_IME_COMPOSITION=$010F;
WM_IME_KEYLAST=$010F;
WM_IME_SETCONTEXT=$0281;
WM_IME_NOTIFY=$0282;
WM_IME_CONTROL=$0283;
WM_IME_COMPOSITIONFULL=$0284;
WM_IME_SELECT=$0285;
WM_IME_CHAR=$0286;
WM_IME_REQUEST=$0288;
WM_IME_KEYDOWN=$0290;
WM_IME_KEYUP=$0291;
WM_MDICREATE=$0220; 應用程序發送此消息給多文檔的客戶窗口來創建一個MDI子窗口
WM_MDIDESTROY=$0221; 應用程序發送此消息給多文檔的客戶窗口來關閉一個MDI子窗口
WM_MDIACTIVATE=$0222; 應用程序發送此消息給多文檔的客戶窗口通知客戶窗口激活另一個MDI子窗口,當客戶窗口收到此消息后,它發出WM_MDIACTIVE消息給MDI子窗口(未激活)激活它;
WM_MDIRESTORE=$0223; 程序發送此消息給MDI客戶窗口讓子窗口從最大最小化恢復到原來大小
WM_MDINEXT=$0224; 程序發送此消息給MDI客戶窗口激活下一個或前一個窗口
WM_MDIMAXIMIZE=$0225; 程序發送此消息給MDI客戶窗口來最大化一個MDI子窗口;
WM_MDITILE=$0226; 程序發送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口
WM_MDICASCADE=$0227; 程序發送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口
WM_MDIICONARRANGE=$0228; 程序發送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口
WM_MDIGETACTIVE=$0229; 程序發送此消息給MDI客戶窗口來找到激活的子窗口的句柄
WM_MDISETMENU=$0230; 程序發送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單
WM_ENTERSIZEMOVE=$0231;
WM_EXITSIZEMOVE=$0232;
WM_DROPFILES=$0233;
WM_MDIREFRESHMENU=$0234;
WM_MOUSEHOVER=$02A1;
WM_MOUSELEAVE=$02A3;
WM_CUT=$0300; 程序發送此消息給一個編輯框或combobox來刪除當前選擇的文本
WM_COPY=$0301; 程序發送此消息給一個編輯框或combobox來復制當前選擇的文本到剪貼板
WM_PASTE=$0302; 程序發送此消息給editcontrol或combobox從剪貼板中得到數據
WM_CLEAR=$0303; 程序發送此消息給editcontrol或combobox清除當前選擇的內容;
WM_UNDO=$0304; 程序發送此消息給editcontrol或combobox撤消最后一次操作
WM_RENDERFORMAT=$0305;
WM_RENDERALLFORMATS=$0306;
WM_DESTROYCLIPBOARD=$0307; 當調用ENPTYCLIPBOARD函數時發送此消息給剪貼板的所有者
WM_DRAWCLIPBOARD=$0308; 當剪貼板的內容變化時發送此消息給剪貼板觀察鏈的第一個窗口;它允許用剪貼板觀察窗口來顯示剪貼板的新內容;
WM_PAINTCLIPBOARD=$0309; 當剪貼板包含CF_OWNERDIPLAY格式的數據并且剪貼板觀察窗口的客戶區需要重畫;
WM_VSCROLLCLIPBOARD=$030A;
WM_SIZECLIPBOARD=$030B; 當剪貼板包含CF_OWNERDIPLAY格式的數據并且剪貼板觀察窗口的客戶區域的大小已經改變是此消息通過剪貼板觀察窗口發送給剪貼板的所有者;
WM_ASKCBFORMATNAME=$030C; 通過剪貼板觀察窗口發送此消息給剪貼板的所有者,來請求一個CF_OWNERDISPLAY格式的剪貼板的名字
WM_CHANGECBCHAIN=$030D; 當一個窗口從剪貼板觀察鏈中移去時發送此消息給剪貼板觀察鏈的第一個窗口;
WM_HSCROLLCLIPBOARD=$030E; 此消息通過一個剪貼板觀察窗口發送給剪貼板的所有者;它發生在當剪貼板包含CFOWNERDISPALY格式的數據并且有個事件在剪貼板觀察窗的水平滾動條上;所有者應滾動剪貼板圖象并更新滾動條的值;
WM_QUERYNEWPALETTE=$030F; 此消息發送給將要收到焦點的窗口,此消息能使窗口在收到焦點時同時有機會實現他的邏輯調色板
WM_PALETTEISCHANGING=$0310; 當一個應用程序正要實現它的邏輯調色板時發此消息通知所有的應用程序
WM_PALETTECHANGED=$0311; 此消息在一個擁有焦點的窗口實現它的邏輯調色板后發送此消息給所有頂級并重疊的窗口,以此來改變系統調色板
WM_HOTKEY=$0312; 當用戶按下由REGISTERHOTKEY函數注冊的熱鍵時提交此消息
WM_PRINT=791; 應用程序發送此消息僅當WINDOWS或其它應用程序發出一個請求要求繪制一個應用程序的一部分;
WM_PRINTCLIENT=792;
WM_HANDHELDFIRST=856;
WM_HANDHELDLAST=863;
WM_PENWINFIRST=$0380;
WM_PENWINLAST=$038F;
WM_COALESCE_FIRST=$0390;
WM_COALESCE_LAST=$039F;
WM_DDE_FIRST=$03E0;
WM_DDE_INITIATE=WM_DDE_FIRST+0; 一個DDE客戶程序提交此消息開始一個與服務器程序的會話來響應那個指定的程序和主題名;
WM_DDE_TERMINATE=WM_DDE_FIRST+1; 一個DDE應用程序(無論是客戶還是服務器)提交此消息來終止一個會話;
WM_DDE_ADVISE=WM_DDE_FIRST+2; 一個DDE客戶程序提交此消息給一個DDE服務程序來請求服務器每當數據項改變時更新它
WM_DDE_UNADVISE=WM_DDE_FIRST+3; 一個DDE客戶程序通過此消息通知一個DDE服務程序不更新指定的項或一個特殊的剪貼板格式的項
WM_DDE_ACK=WM_DDE_FIRST+4; 此消息通知一個DDE(動態數據交換)程序已收到并正在處理WM_DDE_POKE,WM_DDE_EXECUTE,WM_DDE_DATA,WM_DDE_ADVISE,WM_DDE_UNADVISE,orWM_DDE_INITIAT消息
WM_DDE_DATA=WM_DDE_FIRST+5; 一個DDE服務程序提交此消息給DDE客戶程序來傳遞個一數據項給客戶或通知客戶的一條可用數據項WM_DDE_REQUEST=WM_DDE_FIRST+6;一個DDE客戶程序提交此消息給一個DDE服務程序來請求一個數據項的值;
WM_DDE_POKE=WM_DDE_FIRST+7; 一個DDE客戶程序提交此消息給一個DDE服務程序,客戶使用此消息來請求服務器接收一個未經同意的數據項;服務器通過答復WM_DDE_ACK消息提示是否它接收這個數據項;
WM_DDE_EXECUTE=WM_DDE_FIRST+8; 一個DDE客戶程序提交此消息給一個DDE服務程序來發送一個字符串給服務器讓它象串行命令一樣被處理,服務器通過提交WM_DDE_ACK消息來作回應;
WM_DDE_LAST=WM_DDE_FIRST+8;
WM_APP=$8000;
WM_USER=$0400; 此消息能幫助應用程序自定義私有消息;
通知消息(Notificationmessage)是指這樣一種消息,一個窗口內的子控件發生了一些事情,需要通知父窗口。通知消息只適用于標準的窗口控件如按鈕、列表框、組合框、編輯框,以及Windows95公共控件如樹狀視圖、列表
3.1. 按扭
BN_CLICKED //用戶單擊了按鈕
BN_DISABLE //按鈕被禁止
BN_DOUBLECLICKED //用戶雙擊了按鈕
BN_HILITE //用戶加亮了按鈕
BN_PAINT 按鈕應當重畫
BN_UNHILITE 加亮應當去掉
3.2. 組合框
CBN_CLOSEUP 組合框的列表框被關閉
CBN_DBLCLK 用戶雙擊了一個字符串
CBN_DROPDOWN 組合框的列表框被拉出
CBN_EDITCHANGE 用戶修改了編輯框中的文本
CBN_EDITUPDATE 編輯框內的文本即將更新
CBN_ERRSPACE 組合框內存不足
CBN_KILLFOCUS 組合框失去輸入焦點
CBN_SELCHANGE 在組合框中選擇了一項
CBN_SELENDCANCEL 用戶的選擇應當被取消
CBN_SELENDOK 用戶的選擇是合法的
CBN_SETFOCUS 組合框獲得輸入焦點