CButton::Create BOOL Create( LPCTSTR
lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID
); 動(dòng)態(tài)創(chuàng)建一個(gè)按紐 LPCTSTR lpszCaption 按紐文字 DWORD dwStyle
按紐樣式,常選用BS_DEFPUSHBUTTON表示下壓式按紐, 控件本身也是窗口,因此還具有窗口類(lèi)型,如讓控件創(chuàng)建后即可見(jiàn),可給控件WS_VISIBLE, 通常還具有WS_CHILD屬性 const
RECT& rect 矩形區(qū)域,可以是CRect類(lèi)型,也可是Rect結(jié)構(gòu)體。可直接由CRect構(gòu)造,如CRect
(0,0,10,10).。 CWnd* pParentWnd 為父窗口指針,若消息響應(yīng)在父類(lèi)中,可直接用this指針。UINT nID
可隨便給(只能為數(shù)字?)。 注意用此函數(shù)時(shí)需判斷該控件是否已與該控件窗口已關(guān)聯(lián),因?yàn)槿絷P(guān)聯(lián)兩次會(huì)出現(xiàn)錯(cuò)誤,動(dòng)態(tài)創(chuàng)建控件好象只能創(chuàng)建一個(gè)控件。 CWnd::GetDlgItem
CWnd* GetDlgItem( int nID )
const; 用此函數(shù)可通過(guò)控件ID獲得指定控件的指針,一般此函數(shù)用于一個(gè)對(duì)話框類(lèi)中。 CWnd::GetWindowText int
GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const; void
GetWindowText( CString& rString )
const; 此函數(shù)可獲得指定控件上的文本信息并把它保存在一個(gè)CString對(duì)象或char型數(shù)組中。 第一個(gè)重載函數(shù)中nMaxCount指能夠復(fù)制到BUFFER中的最大字符數(shù) CWnd::SetWindowText void
SetWindowText( LPCTSTR lpszString
); 該函數(shù)用于設(shè)置窗體尤其是控件文本。(該函數(shù)是否可向窗口輸出字符串?) atoi int atoi( const char
*string ); 該函數(shù)可將字符串轉(zhuǎn)換為整形值并返回。 類(lèi)似的函數(shù)如下: long atol( const char *string
); double atof( const char *string ); 如果字符不能轉(zhuǎn)化為相應(yīng)的類(lèi)型則返回0 itoa char
*_itoa( int value, char *string, int radix
); 第一個(gè)參數(shù)是要轉(zhuǎn)換的整形值,第二個(gè)參數(shù)是目標(biāo)字符串的指針,第三個(gè)參數(shù)代表進(jìn)制。 (回值干什么用的?) CWnd::GetDlgItemText
int GetDlgItemText( int nID, LPTSTR lpStr, int nMaxCount ) const; int
GetDlgItemText( int nID, CString& rString )
const; 該函數(shù)可通過(guò)控件ID來(lái)獲取控件文本并把它保存在CString
的一個(gè)對(duì)象中或char型數(shù)組中,因?yàn)閿?shù)組會(huì)有最大字符數(shù),因此第一個(gè)重載函數(shù)還有nMaxCount參數(shù)。 CWnd::SetDlgItemText void
SetDlgItemText( int nID, LPCTSTR lpszString
); 將字符串中字符放回nID所指定的控件中 CWnd::GetDlgItemInt UINT GetDlgItemInt(
int nID, BOOL* lpTrans = NULL, BOOL bSigned = TRUE )
const; 該函數(shù)作用是接收指定控件文本并作為整形數(shù)返回 nID為控件ID,第二個(gè)參數(shù)若為NULL則若字符無(wú)法轉(zhuǎn)換為數(shù)字時(shí)會(huì)接受一個(gè)零而不會(huì)報(bào)錯(cuò),第三個(gè)參數(shù)若為T(mén)RUE則檢查文本開(kāi)始處的有無(wú)符號(hào),即數(shù)據(jù)做有符號(hào)數(shù)處理,若為FALSE則作無(wú)符號(hào)數(shù)處理。 CWnd::SetDlgItemInt void
SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE
); 該函數(shù)是將整形值直接傳入ID標(biāo)識(shí)的控件作為控件文本。 nID為控件ID,第二個(gè)參數(shù)為要傳入的整形值,第三個(gè)參數(shù)為真則為有符號(hào)值,反之則為無(wú)符號(hào)值 CWnd::ShowWindow BOOL
ShowWindow( int nCmdShow ); 常用nCmdShow的參數(shù)值 SW_HIDE 隱藏窗口或控件 SW_SHOW
正常顯示窗口或控件 一般由窗口類(lèi)或窗口類(lèi)的派生類(lèi)產(chǎn)生一個(gè)窗口后都需要調(diào)用該函數(shù)將窗口顯示出來(lái),不過(guò)有時(shí)不需要顯式調(diào)用而有時(shí)必須顯示調(diào)用 CWnd::PostMessage BOOL
PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0
); CWnd::SendMessage LRESULT SendMessage( UINT message, WPARAM wParam = 0,
LPARAM lParam = 0
); 可用于各窗體或控件之間的消息通信。 如常用的獲取窗體或控件的文本消息WM_GETTEXT,用WM_GETTEXT時(shí)參數(shù): WPARAM為要copy的最大字符數(shù),LPARAM為存儲(chǔ)的buffer區(qū),若為char型數(shù)組則需要強(qiáng)制類(lèi)型轉(zhuǎn)換 設(shè)置窗體文本的消息WM_SETTEXT,參數(shù)含義: wParam
未被使用,設(shè)為0 ,lParam
為要設(shè)置的文本的存儲(chǔ)單元地址; 設(shè)置編輯框文本復(fù)選的消息為EM_SETSEL EM_SETSEL wParam = (WPARAM)
(INT) nStart; // starting position lParam = (LPARAM) (INT) nEnd; //
ending
position wParam為復(fù)選起始位置,lParam為復(fù)選結(jié)束位置。注意,若最后鼠標(biāo)焦點(diǎn)不在編輯框上則無(wú)法顯示文本復(fù)選,因此一般最后會(huì)加上一個(gè)SetFocus函數(shù)。 獲取編輯框文本復(fù)選的消息為
EM_GETSEL wParam = (WPARAM) (LPDWORD) lpdwStart; // receives starting
position lParam = (LPARAM) (LPDWORD) lpdwEnd; // receives ending
position wParam為一個(gè)DWORD類(lèi)型數(shù)的指針,用于保存起始位置,lParam也為一個(gè)DWORD類(lèi)型數(shù)的指針,用于保存結(jié)束位置。 CWnd::SendDlgItemMessage LRESULT
SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0
); 本函數(shù)用于對(duì)話框各控件的消息通信,獲取指定ID的消息,該函數(shù)不是被類(lèi)的對(duì)象調(diào)用的。 CDC::TextOut virtual
BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount ); BOOL TextOut(
int x, int y, const CString& str
); 該函數(shù)可用于向指定窗口輸出一串文字,輸出成功則返回非0; 輸出文本顏色不是由畫(huà)筆控制的,而是由CD中的成員函數(shù) CDC::SetTextColor virtual
COLORREF SetTextColor( COLORREF crColor ); 指定。背景顏色由 CDC::SetBkColor
virtual COLORREF SetBkColor( COLORREF crColor
); 指定。 SDK下該函數(shù)為: BOOL TextOut( HDC hdc, // handle
to device context int nXStart, // x-coordinate of starting
position int nYStart, // y-coordinate of starting position
LPCTSTR lpString, // pointer to string int cbString // number of
characters in string ); CWnd::SetFocus CWnd* SetFocus(
); 該函數(shù)為設(shè)置鼠標(biāo)焦點(diǎn)的函數(shù),返回的是原先具有焦點(diǎn)的窗體指針。 CWnd::GetWindowRect void
GetWindowRect( LPRECT lpRect )
const; 該函數(shù)獲得窗口矩形區(qū)域信息并將信息保存在CRect或Rect結(jié)構(gòu)體中 CWnd::SetWindowPos BOOL
SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT
nFlags
); 該函數(shù)可用于設(shè)置窗口的大小以及窗口的層疊次序。 第二,三個(gè)參數(shù)為窗口的左上角的x與y值,第四個(gè)參數(shù)為窗口的寬度,第五個(gè)參數(shù)為窗口的高度,最后一個(gè)參數(shù)為設(shè)置顯示屬性,如若要窗口顯示位置不改變,nFlags可設(shè)置為
SWP_NOMOVE ,此時(shí)將忽略x與y值, SetWindowLong LONG SetWindowLong( HWND
hWnd, // handle of window int nIndex, // offset of value to
set LONG dwNewLong // new
value ); API函數(shù),可用于改變指定窗口的一個(gè)屬性,當(dāng)nIndex取GWL_WNDPROC, 可用于替換一個(gè)窗口過(guò)程。 GetNextWindow HWND
GetNextWindow( HWND hWnd, // handle to current window UINT wCmd //
direction
flag ); SDK函數(shù),可獲取當(dāng)前控件的下一個(gè)控件的句柄,其中第一個(gè)參數(shù)為當(dāng)前控件的句柄,第二個(gè)參數(shù)可取GW_HWNDNEXT或GW_HWNDPREV,若取GW_HWNDNEXT則獲取下一個(gè)控件句柄,若取GW_HWNDPREV則獲取當(dāng)前句柄的前一個(gè)控件句柄 GetWindow HWND
GetWindow( HWND hWnd, // handle to original window UINT uCmd //
relationship
flag ); 該函數(shù)功能與GetNextWindow相似,但功能比GetNextWindow更強(qiáng)大,其中的nCmd選項(xiàng)可選GW_HWNDNEXT與GW_HWNDPREV外還可選擇: GW_CHILD表示獲取當(dāng)前控件子控件句柄,GW_HWNDFIRST與
GW_HWNDLASTfenbie分別表示獲取第一個(gè)與最后一個(gè)控件句柄。 GetNextDlgTabItem HWND
GetNextDlgTabItem( HWND hDlg, // handle of dialog box HWND
hCtl, // handle of known control BOOL bPrevious // direction
flag ); CWnd::GetNextWindow CWnd* GetNextWindow( UINT nFlag =
GW_HWNDNEXT ) const; 此函數(shù)返回指向當(dāng)前控件的下一個(gè)控件的指針。 CWnd::ModifyStyle BOOL
ModifyStyle(DWORD dwRemove,DWORD dwAdd, UINT nFlags = 0
); 此函數(shù)用于替換指定窗口的樣式,第一個(gè)參數(shù)DWORD dwRemove,為要去掉的窗口樣式,第二個(gè)參數(shù)DWORD
dwAdd為將要添加的窗口樣式,第三個(gè)參數(shù)為0則窗口不重繪,非0則窗口重繪。 LPTSTR MAKEINTRESOURCE( WORD
wInteger // integer to
convert ); 該函數(shù)可以將一個(gè)整形值轉(zhuǎn)換為一個(gè)資源類(lèi)型的值,一般用于將一個(gè)資源的ID標(biāo)示轉(zhuǎn)換為資源的名字的字符串 封裝所有字符串操作的類(lèi)CString類(lèi),常用方法: CString::Format:格式化輸出一個(gè)字符串用法與c語(yǔ)言中Printf()相類(lèi)似 CString::operator
+=:可以連接一個(gè)字符串 DWORD GetCurrentDirectory( DWORD nBufferLength, //
size, in characters, of directory buffer LPTSTR lpBuffer // pointer
to buffer for current
directory ); 該函數(shù)為SDK平臺(tái)下的函數(shù),作用是獲取當(dāng)前目錄下所有文件名,并將當(dāng)前目錄下所有文件的文件名放入lpBuffer指向的字符數(shù)組中。
VC常用消息總結(jié)
收藏 以下資料主要來(lái)自互聯(lián)網(wǎng),感謝相關(guān)兄弟的無(wú)私奉獻(xiàn):
0 ~ WM_USER – 1 系統(tǒng)消息
WM_USER ~ 0x7FFF 自定義窗口類(lèi)整數(shù)消息
WM_APP ~ 0xBFFF 應(yīng)用程序自定義消息
0xC000 ~ 0xFFFF 應(yīng)用程序字符串消息
> 0xFFFF 為以后系統(tǒng)應(yīng)用保留
常用Windows消息:
消息名稱 值 說(shuō)
明
WM_NULL 0x0000
空消息,此消息將被接收窗口忽略 WM_CREATE 0x0001 應(yīng)用程序創(chuàng)建一個(gè)窗口
WM_DESTROY 0x0002
一個(gè)窗口被銷(xiāo)毀 WM_MOVE 0x0003
移動(dòng)一個(gè)窗口 WM_SIZE 0x0005 改變一個(gè)窗口的大小
WM_ACTIVATE 0x0006
一個(gè)窗口被激活或失去激活狀態(tài) WM_SETFOCUS 0x0007
獲得焦點(diǎn)后 WM_KILLFOCUS 0x0008
失去焦點(diǎn) WM_ENABLE 0x000A 應(yīng)用程序Enable狀態(tài)改變時(shí)產(chǎn)生
WM_SETREDRAW
0x000B 設(shè)置窗口是否能重畫(huà) WM_SETTEXT 0x000C
應(yīng)用程序發(fā)送此消息來(lái)設(shè)置一個(gè)窗口的文本 WM_GETTEXT 0x000D 應(yīng)用程序發(fā)送此消息來(lái)復(fù)制對(duì)應(yīng)窗口的文本到緩沖區(qū)
WM_GETTEXTLENGTH 0x000E 得到與一個(gè)窗口有關(guān)的文本的長(zhǎng)度(不包含空字符)
WM_PAINT 0x000F 要求一個(gè)窗口重繪自己
WM_CLOSE 0x0010 當(dāng)一個(gè)窗口或應(yīng)用程序要關(guān)閉時(shí)發(fā)送一個(gè)信號(hào)
WM_QUERYENDSESSION 0x0011 用戶選擇結(jié)束對(duì)話框或應(yīng)用程序自己調(diào)用ExitWindows()函數(shù)
WM_QUIT 0x0012 用來(lái)結(jié)束程序運(yùn)行或應(yīng)用程序調(diào)用Postquitmessage()函數(shù)來(lái)產(chǎn)生此消息
WM_QUERYOPEN 0x0013 當(dāng)用戶窗口恢復(fù)以前的大小位置時(shí),把此消息發(fā)送給某個(gè)圖標(biāo)
WM_ERASEBKGND 0x0014 當(dāng)窗口背景必須被擦除時(shí)(例如在窗口改變大小時(shí))
WM_SYSCOLORCHANGE 0x0015 當(dāng)系統(tǒng)顏色改變時(shí),發(fā)送此消息給所有頂級(jí)窗口
WM_ENDSESSION 0x0016 當(dāng)系統(tǒng)進(jìn)程發(fā)出WM_QUERYENDSESSION消息后,此消息發(fā)送給應(yīng)用程序
WM_SHOWWINDOW 0x0018 當(dāng)隱藏或顯示窗口是發(fā)送此消息給這個(gè)窗口
WM_ACTIVATEAPP 0x001C 當(dāng)某個(gè)窗口將被激活時(shí),將被激活窗口和當(dāng)前活動(dòng)(即將失去激活)窗口會(huì)收到此消息,發(fā)此消息給應(yīng)用程序哪個(gè)窗口是激活的,哪個(gè)是非激活的
WM_FONTCHANGE 0x001D 當(dāng)系統(tǒng)的字體資源庫(kù)變化時(shí)發(fā)送此消息給所有頂級(jí)窗口
WM_TIMECHANGE 0x001E 當(dāng)系統(tǒng)的時(shí)間變化時(shí)發(fā)送此消息給所有頂級(jí)窗口
WM_CANCELMODE 0x001F 發(fā)送此消息來(lái)取消某種正在進(jìn)行的操作
WM_SETCURSOR 0x0020 如果鼠標(biāo)引起光標(biāo)在某個(gè)窗口中移動(dòng)且鼠標(biāo)輸入沒(méi)有被捕獲時(shí),發(fā)消息給該窗口
WM_MOUSEACTIVATE 0x0021 當(dāng)光標(biāo)在某個(gè)非激活的窗口中而用戶正按著鼠標(biāo)的某個(gè)鍵發(fā)送此消息給當(dāng)前窗口
WM_CHILDACTIVATE 0x0022 發(fā)送此消息給MDI子窗口當(dāng)用戶點(diǎn)擊此窗口的標(biāo)題欄,或當(dāng)窗口被激活、移動(dòng)、改變大小
WM_QUEUESYNC 0x0023 此消息由基于計(jì)算機(jī)的訓(xùn)練程序發(fā)送,通過(guò)WH_JOURNALPALYBACK的Hook程序分離出用戶輸入消息
WM_GETMINMAXINFO 0x0024 當(dāng)窗口要將要改變大小或位置時(shí),發(fā)送此消息給該窗口
WM_PAINTICON 0x0026 當(dāng)窗口圖標(biāo)將要被重繪時(shí),發(fā)送此消息給該窗口
WM_ICONERASEBKGND 0x0027 在一個(gè)最小化窗口的圖標(biāo)在重繪前,當(dāng)圖標(biāo)背景必須被重繪時(shí),發(fā)送此消息給該窗口
WM_NEXTDLGCTL 0x0028 發(fā)送此消息給一個(gè)對(duì)話框程序以更改焦點(diǎn)位置
WM_SPOOLERSTATUS 0x002A 當(dāng)打印管理列隊(duì)增加或減少一條作業(yè)時(shí)發(fā)出此消息
WM_DRAWITEM 0x002B 當(dāng)Button,ComboBox,Listbox,Menu控件的外觀改變時(shí),發(fā)送此消息給這些控件的所有者
WM_MEASUREITEM 0x002C 當(dāng)Button,ComboBox,list
box,ListView,Menu 項(xiàng)被創(chuàng)建時(shí),發(fā)送此消息給控件的所有者
WM_DELETEITEM 0x002D 當(dāng)ListBox 或 ComboBox
被銷(xiāo)毀或當(dāng)某些項(xiàng)通過(guò)發(fā)送LB_DELETESTRING、LB_RESETCONTENT、 CB_DELETESTRING、CB_RESETCONTENT
消息被刪除時(shí),發(fā)送此消息給控件的所有者
WM_VKEYTOITEM 0x002E 一個(gè)具有LBS_WANTKEYBOARDINPUT風(fēng)格的ListBox控件發(fā)送此消息給它的所有者,以此來(lái)響應(yīng)WM_KEYDOWN消息
WM_CHARTOITEM 0x002F 一個(gè)具有LBS_WANTKEYBOARDINPUT風(fēng)格的ListBox控件發(fā)送此消息給它的所有者,以此來(lái)響應(yīng)WM_CHAR消息
WM_SETFONT 0x0030 應(yīng)用程序繪制控件時(shí),發(fā)送此消息得到以何種字體繪制控件中的文本
WM_GETFONT 0x0031 應(yīng)用程序發(fā)送此消息得到當(dāng)前控件繪制文本的字體
WM_SETHOTKEY 0x0032 應(yīng)用程序發(fā)送此消息讓一個(gè)窗口與一個(gè)熱鍵相關(guān)聯(lián)
WM_GETHOTKEY 0x0033 應(yīng)用程序發(fā)送此消息來(lái)判斷熱鍵與某個(gè)窗口是否有關(guān)聯(lián)
WM_QUERYDRAGICON 0x0037 此消息發(fā)送給最小化窗口,當(dāng)此窗口將要被拖放而它的類(lèi)中沒(méi)有定義圖標(biāo),應(yīng)用程序就返回一個(gè)圖標(biāo)或光標(biāo)的句柄,當(dāng)用戶拖放圖標(biāo)時(shí)系統(tǒng)顯示這個(gè)圖標(biāo)或光標(biāo)
WM_COMPAREITEM 0x0039 發(fā)送此消息來(lái)判定ComboBox或ListBox新增加的項(xiàng)的相對(duì)位置
WM_COMPACTING 0x0041 顯示內(nèi)存已經(jīng)很少了
WM_WINDOWPOSCHANGING 0x0046 當(dāng)調(diào)用SetWindowPos()函數(shù)改變窗口的大小和位置后,發(fā)送此消息給該窗口
WM_POWER 0x0048 當(dāng)系統(tǒng)將進(jìn)入掛起狀態(tài)時(shí)發(fā)送此消息給所有進(jìn)程
WM_COPYDATA 0x004A 當(dāng)一個(gè)應(yīng)用程序傳遞數(shù)據(jù)給另一個(gè)應(yīng)用程序時(shí)發(fā)送此消息
WM_CANCELJOURNAL 0x004B 當(dāng)某個(gè)用戶取消程序日志激活狀態(tài),發(fā)送此消息給應(yīng)用程序
WM_NOTIFY 0x004E 當(dāng)某個(gè)控件的某個(gè)事件已經(jīng)發(fā)生或這個(gè)控件需要得到一些信息時(shí),發(fā)送此消息給它的父窗口
WM_INPUTLANGCHANGEREQUEST 0x0050 當(dāng)用戶選擇某種輸入語(yǔ)言,或輸入語(yǔ)言的熱鍵改變
WM_INPUTLANGCHANGE 0x0051 當(dāng)應(yīng)用程序輸入語(yǔ)言改變后發(fā)送此消息給受影響的最頂級(jí)窗口
WM_TCARD 0x0052 當(dāng)應(yīng)用程序已經(jīng)初始化Windows幫助例程時(shí)發(fā)送此消息給應(yīng)用程序
WM_HELP 0x0053 當(dāng)用戶按下了F1,如果某個(gè)菜單是激活的,就發(fā)送此消息給此窗口關(guān)聯(lián)的菜單,否則就發(fā)送給有焦點(diǎn)的窗口,如果當(dāng)前都沒(méi)有焦點(diǎn),就把此消息發(fā)送給當(dāng)前激活的窗口
WM_USERCHANGED 0x0054 當(dāng)用戶已經(jīng)登錄或退出后發(fā)送此消息給所有的窗口,當(dāng)用戶登錄或退出時(shí)系統(tǒng)更新用戶的具體設(shè)置信息,在用戶更新設(shè)置時(shí)系統(tǒng)馬上發(fā)送此消息
WM_NOTIFYFORMAT 0x0055 公用控件和它們的父窗口通過(guò)此消息來(lái)判斷在WM_NOTIFY消息中是使用ANSI還是UNICODE形式的結(jié)構(gòu),使用此控件能使某個(gè)控件與它的父控件進(jìn)行相互通信
WM_CONTEXTMENU 0x007B 當(dāng)用戶在某個(gè)窗口中點(diǎn)擊右鍵,則發(fā)送此消息給該窗口
WM_STYLECHANGING 0x007C 當(dāng)將要調(diào)用SetWindowLong()函數(shù)窗口的一個(gè)或多個(gè)風(fēng)格時(shí),發(fā)送此消息給該窗口
WM_STYLECHANGED 0x007D 當(dāng)調(diào)用SetWindowLong()函數(shù)改變了窗口的一個(gè)或多個(gè)風(fēng)格后,發(fā)送此消息給該窗口
WM_DISPLAYCHANGE 0x007E 當(dāng)顯示器的分辨率改變后發(fā)送此消息給所有的窗口
WM_GETICON 0x007F 發(fā)送此消息給某個(gè)窗口,返回與某個(gè)窗口有關(guān)聯(lián)的大圖標(biāo)或小圖標(biāo)的句柄
WM_SETICON 0x0080 應(yīng)用程序發(fā)送此消息讓一個(gè)新的大圖標(biāo)或小圖標(biāo)與某個(gè)窗口關(guān)聯(lián)
WM_NCCREATE 0x0081 當(dāng)某個(gè)窗口第一次被創(chuàng)建時(shí),此消息在WM_CREATE消息被發(fā)送前發(fā)送
WM_NCDESTROY 0x0082 此消息通知某個(gè)窗口,正在銷(xiāo)毀非客戶區(qū)
WM_NCCALCSIZE 0x0083 當(dāng)計(jì)算某個(gè)窗口的客戶區(qū)大小和位置時(shí)發(fā)送此消息
WM_NCHITTEST 0x0084 移動(dòng)鼠標(biāo),按住或釋放鼠標(biāo)時(shí)產(chǎn)生此消息
WM_NCPAINT 0x0085 當(dāng)某個(gè)窗口的框架必須被繪制時(shí),應(yīng)用程序發(fā)送此消息給該窗口
WM_NCACTIVATE 0x0086 通過(guò)改變某個(gè)窗口的非客戶區(qū)來(lái)表示窗口是處于激活還是非激活狀態(tài)時(shí),此消息被發(fā)送給該窗口
WM_NCMOUSEMOVE 0x00A0 當(dāng)光標(biāo)在窗口的非客戶區(qū)(窗口標(biāo)題欄及邊框)內(nèi)移動(dòng)時(shí)發(fā)送此消息給該窗口
WM_NCLBUTTONDOWN 0x00A1 當(dāng)光標(biāo)在窗口的非客戶區(qū)并按下鼠標(biāo)左鍵時(shí)發(fā)送此消息
WM_NCLBUTTONUP 0x00A2 當(dāng)光標(biāo)在窗口的非客戶區(qū)并釋放鼠標(biāo)左鍵時(shí)發(fā)送此消息
WM_NCLBUTTONDBLCLK 0x00A3 當(dāng)光標(biāo)在窗口的非客戶區(qū)并雙擊鼠標(biāo)左鍵時(shí)發(fā)送此消息
WM_NCRBUTTONDOWN 0x00A4 當(dāng)光標(biāo)在窗口的非客戶區(qū)并按下鼠標(biāo)右鍵時(shí)發(fā)送此消息
WM_NCRBUTTONUP 0x00A5 當(dāng)光標(biāo)在窗口的非客戶區(qū)并釋放鼠標(biāo)右鍵時(shí)發(fā)送此消息
WM_NCRBUTTONDBLCLK 0x00A6 當(dāng)光標(biāo)在窗口的非客戶區(qū)并雙擊鼠標(biāo)右鍵時(shí)發(fā)送此消息
WM_NCMBUTTONDOWN 0x00A7 當(dāng)光標(biāo)在窗口的非客戶區(qū)并按下鼠標(biāo)中鍵時(shí)發(fā)送此消息
WM_NCMBUTTONUP 0x00A8 當(dāng)光標(biāo)在窗口的非客戶區(qū)并釋放鼠標(biāo)中鍵時(shí)發(fā)送此消息
WM_NCMBUTTONDBLCL 0x00A9 當(dāng)光標(biāo)在窗口的非客戶區(qū)并雙擊鼠標(biāo)中鍵時(shí)發(fā)送此消息
WM_KEYDOWN 0x0100 按下一個(gè)非系統(tǒng)鍵(按下鍵時(shí)未按下“ALT”鍵)
WM_KEYUP 0x0101 釋放一個(gè)非系統(tǒng)鍵
WM_CHAR 0x0102 按下某鍵,當(dāng)TranslateMessage()轉(zhuǎn)發(fā)WM_KEYDOWN后發(fā)送本消息
WM_DEADCHAR 0x0103 釋放某鍵,當(dāng)TranslateMessage()轉(zhuǎn)發(fā)WM_KEYUP后發(fā)送本消息
WM_SYSKEYDOWN 0x0104 當(dāng)按住ALT鍵同時(shí)按下其他鍵時(shí)發(fā)送此消息給擁有鍵盤(pán)焦點(diǎn)的窗口
WM_SYSKEYUP 0x0105 當(dāng)釋放一個(gè)鍵同時(shí)按住ALT鍵時(shí)發(fā)送此消息給擁有鍵盤(pán)焦點(diǎn)的窗口
WM_SYSCHAR 0x0106 當(dāng)TranslateMessage()轉(zhuǎn)發(fā)WM_SYSKEYDOWN后發(fā)送此消息給擁有鍵盤(pán)焦點(diǎn)的窗口
WM_SYSDEADCHAR 0x0107 當(dāng)TranslateMessage()轉(zhuǎn)發(fā)WM_SYSKEYUP后發(fā)送此消息給擁有鍵盤(pán)焦點(diǎn)的窗口
WM_INITDIALOG 0x0110 在被顯示前發(fā)送此消息對(duì)話框,通常用此消息初始化控件和執(zhí)行其他任務(wù)
WM_COMMAND 0x0111 選擇窗口菜單項(xiàng)或某個(gè)控件發(fā)送一條消息給它的父窗口或按下一個(gè)快捷鍵時(shí)產(chǎn)生此消息
WM_SYSCOMMAND 0x0112 選擇窗口菜單項(xiàng)或選擇最大化或最小化時(shí),發(fā)送此消息給該窗口
WM_TIMER 0x0113 發(fā)生了定時(shí)器事件
WM_HSCROLL 0x0114 當(dāng)窗口水平滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給該窗口和滾動(dòng)條的所有者
WM_VSCROLL 0x0115 當(dāng)窗口垂直滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給該窗口和滾動(dòng)條的所有者
WM_INITMENU 0x0116 當(dāng)一個(gè)菜單將要被激活時(shí)發(fā)送此消息,它發(fā)生在按下菜單項(xiàng)或按下菜單快捷鍵時(shí),它允許程序在顯示前更改菜單
WM_INITMENUPOPUP 0x0117 當(dāng)一個(gè)下拉菜單或子菜單將要被激活時(shí)發(fā)送此消息,它允許顯示前在修改菜單而不必更改整個(gè)菜單
WM_MENUSELECT 0x011F 選擇一條菜單項(xiàng)時(shí)發(fā)送此消息給菜單的所有者(一般是窗口)
WM_MENUCHAR 0x0120 當(dāng)菜單已被激活且用戶按下了某個(gè)鍵(非快捷鍵),發(fā)送此消息給菜單的所有者
WM_ENTERIDLE 0x0121 當(dāng)一個(gè)有模式對(duì)話框或菜單進(jìn)入空閑狀態(tài)時(shí)發(fā)送此消息給它的所有者,空閑狀態(tài)指在處理完一條或幾條先前的消息后,消息列隊(duì)為空
WM_MENURBUTTONUP 0x0122 當(dāng)光標(biāo)位于菜單項(xiàng)上時(shí),釋放鼠標(biāo)右鍵產(chǎn)生此消息
WM_MENUDRAG 0x0123 當(dāng)拖動(dòng)菜單項(xiàng)時(shí),發(fā)送此消息給拖放菜單的所有者
WM_MENUGETOBJECT 0x0124 當(dāng)光標(biāo)移入菜單項(xiàng)或者從菜單項(xiàng)中心移到菜單項(xiàng)頂部或底部時(shí),發(fā)送此消息給拖放菜單的所有者
WM_UNINITMENUPOPUP 0x0125 當(dāng)下拉菜單或者子菜單被銷(xiāo)毀時(shí)產(chǎn)生此消息
WM_MENUCOMMAND 0x0126 當(dāng)用戶選擇菜單項(xiàng)時(shí)產(chǎn)生此消息
WM_CHANGEUISTATE 0x0127 應(yīng)用程序發(fā)送此消息表明用戶界面(UI)狀態(tài)應(yīng)當(dāng)被改變
WM_UPDATEUISTATE 0x0128 應(yīng)用程序發(fā)送此消息改變指定窗口及其子窗口的用戶界面(UI)狀態(tài)
WM_QUERYUISTATE 0x0129 應(yīng)用程序發(fā)送此消息得到某個(gè)窗口的用戶界面(UI)狀態(tài)
WM_CTLCOLORMSGBOX 0x0132 繪制消息框前發(fā)送此消息給它的父窗口,通過(guò)響應(yīng)這條消息,父窗口可以通過(guò)使用給定的相關(guān)顯示設(shè)備的句柄來(lái)設(shè)置消息框的文本和背景顏色
WM_CTLCOLOREDIT 0x0133 繪制編輯型控件前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORLISTBOX 0x0134 繪制列表框控件前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORBTN 0x0135 繪制按鈕控件前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORDLG 0x0136 繪制對(duì)話框前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置編輯框的文本和背景顏色
WM_CTLCOLORSCROLLBAR 0x0137 繪制滾動(dòng)條控件前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置滾動(dòng)條控件的文本和背景顏色
WM_CTLCOLORSTATIC 0x0138 繪制靜態(tài)控件前發(fā)送此消息給它的父窗口,可用來(lái)設(shè)置靜態(tài)控件的文本和背景顏色
WM_MOUSEMOVE 0x0200 鼠標(biāo)移動(dòng)
WM_LBUTTONDOWN 0x0201 按下鼠標(biāo)左鍵
WM_LBUTTONUP 0x0202 釋放鼠標(biāo)左鍵
WM_LBUTTONDBLCLK 0x0203 雙擊鼠標(biāo)左鍵
WM_RBUTTONDOWN 0x0204 按下鼠標(biāo)右鍵
WM_RBUTTONUP 0x0205 釋放鼠標(biāo)右鍵
WM_RBUTTONDBLCLK 0x0206 雙擊鼠標(biāo)右鍵
WM_MBUTTONDOWN 0x0207 按下鼠標(biāo)中鍵
WM_MBUTTONUP 0x0208 釋放鼠標(biāo)中鍵
WM_MBUTTONDBLCLK 0x0209 雙擊鼠標(biāo)中鍵
WM_MOUSEWHEEL 0x020A 當(dāng)鼠標(biāo)滾輪轉(zhuǎn)動(dòng)時(shí)發(fā)送此消息給當(dāng)前獲得焦點(diǎn)的窗口
WM_PARENTNOTIFY 0x0210 當(dāng)MDI子窗口被創(chuàng)建或被銷(xiāo)毀,或當(dāng)光標(biāo)位于子窗口上且用戶按了一下鼠標(biāo)鍵時(shí),發(fā)送此消息給它的父窗口
WM_ENTERMENULOOP 0x0211 發(fā)送此消息通知應(yīng)用程序的主窗口進(jìn)程已經(jīng)進(jìn)入了菜單模式循環(huán)
WM_EXITMENULOOP 0x0212 發(fā)送此消息通知應(yīng)用程序的主窗口進(jìn)程已經(jīng)退出了菜單模式循環(huán)
WM_SIZING 0x0214 調(diào)整窗口大小時(shí)發(fā)送此消息給窗口,通過(guò)此消息應(yīng)用程序可以監(jiān)視或修改窗口大小和位置
WM_CAPTURECHANGED 0x0215 當(dāng)窗口設(shè)定為不捕獲鼠標(biāo)事件時(shí),發(fā)送此消息給該窗口
WM_MOVING 0x0216 移動(dòng)窗口時(shí)發(fā)送此消息給窗口,通過(guò)此消息應(yīng)用程序可以監(jiān)視或修改窗口大小和位置
WM_POWERBROADCAST 0x0218 發(fā)送此消息給應(yīng)用程序通知它有關(guān)電源管理事件
WM_DEVICECHANGE 0x0219 當(dāng)設(shè)備的硬件配置改變時(shí)發(fā)送此消息給應(yīng)用程序或設(shè)備驅(qū)動(dòng)程序
WM_MDICREATE 0x0220 應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來(lái)創(chuàng)建一個(gè)MDI
子窗口
WM_MDIDESTROY 0x0221 應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來(lái)關(guān)閉一個(gè)MDI
子窗口
WM_MDIACTIVATE 0x0222 應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口通知客戶窗口激活另一個(gè)MDI子窗口,當(dāng)客戶窗口收到此消息后,它發(fā)出WM_MDIACTIVE消息給MDI子窗口(未激活)來(lái)激活它
WM_MDIRESTORE 0x0223 應(yīng)用程序發(fā)送此消息給MDI客戶窗口通知子窗口恢復(fù)到原來(lái)大小
WM_MDINEXT 0x0224 應(yīng)用程序發(fā)送此消息給MDI客戶窗口激活下一個(gè)或前一個(gè)窗口
WM_MDIMAXIMIZE 0x0225 應(yīng)用程序發(fā)送此消息給MDI客戶窗口以最大化一個(gè)MDI子窗口
WM_MDITILE 0x0226 應(yīng)用程序發(fā)送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口
WM_MDICASCADE 0x0227 應(yīng)用程序發(fā)送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口
WM_MDIICONARRANGE 0x0228 應(yīng)用程序發(fā)送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口
WM_MDIGETACTIVE 0x0229 應(yīng)用程序發(fā)送此消息給MDI客戶窗口以找到激活的子窗口的句柄
WM_MDISETMENU 0x0230 應(yīng)用程序發(fā)送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單
WM_ENTERSIZEMOVE 0x0231 當(dāng)窗口進(jìn)入移動(dòng)或改變大小模式循環(huán)時(shí),發(fā)送此消息給該窗口
WM_EXITSIZEMOVE 0x0232 當(dāng)窗口退出移動(dòng)或改變大小模式循環(huán)時(shí),發(fā)送此消息給該窗口
WM_DROPFILES 0x0233 當(dāng)用戶在應(yīng)用程序窗口中拖動(dòng)某個(gè)文件時(shí),產(chǎn)生此消息
WM_MDIREFRESHMENU 0x0234 應(yīng)用程序發(fā)送此消息給MDI客戶窗口以刷新窗口菜單
WM_MOUSEHOVER 0x02A1 當(dāng)光標(biāo)在窗口客戶區(qū)懸停超過(guò)TrackMouseEvent()指定的時(shí)間時(shí),發(fā)送此消息給該窗口
WM_MOUSELEAVE 0x02A3 當(dāng)光標(biāo)離開(kāi)窗口客戶區(qū)超過(guò)TrackMouseEvent()指定的時(shí)間時(shí),發(fā)送此消息給該窗口
WM_CUT 0x0300 應(yīng)用程序發(fā)送此消息給一個(gè)編輯框或ComboBox以刪除當(dāng)前選擇的文本
WM_COPY 0x0301 應(yīng)用程序發(fā)送此消息給一個(gè)編輯框或ComboBox以復(fù)制當(dāng)前選擇的文本到剪貼板
WM_PASTE 0x0302 應(yīng)用程序發(fā)送此消息給一個(gè)編輯框或ComboBox以從剪貼板中得到數(shù)據(jù)
WM_CLEAR 0x0303 應(yīng)用程序發(fā)送此消息給一個(gè)編輯框或ComboBox以清除當(dāng)前選擇的內(nèi)容
WM_UNDO 0x0304 應(yīng)用程序發(fā)送此消息給一個(gè)編輯框或ComboBox以撤消最后一次操作
WM_DESTROYCLIPBOARD 0x0307 當(dāng)調(diào)用EmptyClipboard()清空剪貼板時(shí),發(fā)送此消息給剪貼板所有者
WM_DRAWCLIPBOARD 0x0308 當(dāng)剪貼板的內(nèi)容變化時(shí)發(fā)送此消息給剪貼板觀察鏈中的第一個(gè)窗口,它允許用剪貼板觀察窗口來(lái)顯示剪貼板的新內(nèi)容
WM_PAINTCLIPBOARD 0x0309 當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)且剪貼板觀察窗口的客戶區(qū)需要重繪時(shí),發(fā)送此消息給剪貼板所有者
WM_VSCROLLCLIPBOARD 0x030A 當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)且剪貼板觀察窗口發(fā)生垂直滾動(dòng)條事件時(shí),剪貼板觀察窗口發(fā)送此消息給剪貼板所有者
WM_SIZECLIPBOARD 0x030B 當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)且剪貼板觀察窗口的客戶區(qū)域的大小已經(jīng)改變時(shí),剪貼板觀察窗口發(fā)送此消息給剪貼板的所有者
WM_ASKCBFORMATNAME 0x030C 剪貼板觀察窗口發(fā)送此消息給剪貼板所有者以獲得CF_OWNERDISPLAY剪貼板格式的名字
WM_CHANGECBCHAIN 0x030D 當(dāng)一個(gè)窗口從剪貼板觀察鏈中移去時(shí)發(fā)送此消息給剪貼板觀察鏈中的第一個(gè)窗口
WM_HSCROLLCLIPBOARD 0x030E 當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)且剪貼板觀察窗口發(fā)生水平滾動(dòng)條事件時(shí),剪貼板觀察窗口發(fā)送此消息給剪貼板所有者
WM_QUERYNEWPALETTE 0x030F 發(fā)送此消息給將要獲得鍵盤(pán)焦點(diǎn)的窗口,此消息使窗口在獲得焦點(diǎn)時(shí)同時(shí)有機(jī)會(huì)實(shí)現(xiàn)它的邏輯調(diào)色板
WM_PALETTEISCHANGING 0x0310 應(yīng)用程序?qū)⒁獙?shí)現(xiàn)它的邏輯調(diào)色板時(shí)發(fā)送此消息通知所有應(yīng)用程序
WM_PALETTECHANGED 0x0311 獲得焦點(diǎn)的窗口實(shí)現(xiàn)它的邏輯調(diào)色板后發(fā)送此消息給所有頂級(jí)并重疊的窗口,以此
來(lái)改變系統(tǒng)調(diào)色板
WM_HOTKEY 0x0312 當(dāng)用戶按下由RegisterHotKey()注冊(cè)的熱鍵時(shí)產(chǎn)生此消息
WM_PRINT 0x0317 應(yīng)用程序發(fā)送此消息給窗口,要求窗口在指定設(shè)備環(huán)境中繪制自己,一般情況下是打印機(jī)設(shè)備環(huán)境
WM_PRINTCLIENT 0x0318 應(yīng)用程序發(fā)送此消息給窗口,要求窗口在指定設(shè)備環(huán)境中繪制窗口客戶區(qū),一般情況下是打印機(jī)設(shè)備環(huán)境
WM_APP 0x8000 幫助用戶自定義消息,自定義消息可以為WM_APP+X,X為正整數(shù)
WM_USER 0x0400 幫助用戶自定義消息,自定義消息可以為WM_USER+X,X為正整數(shù)
|