日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】

發(fā)布時(shí)間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?protected override void WndProc(ref Message m)
??????? {
??????????? const int WM_SYSCOMMAND = 0x0112;
??????????? const int SC_CLOSE = 0xF060;

??????????? if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
??????????? {
??????????????? // 屏蔽傳入的消息事件
??????????????? this.WindowState = FormWindowState.Minimized;
??????????????? return;
??????????? }
??????????? base.WndProc(ref m);
??????? }

??????? protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
??????? {
??????????? int WM_KEYDOWN = 256;
??????????? int WM_SYSKEYDOWN = 260;

??????????? if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
??????????? {
??????????????? switch (keyData)
??????????????? {
??????????????????? case Keys.Escape:
??????????????????????? this.Close();

??????????????????????? break;
??????????????? }
??????????? }
??????????? return false;
??????? }

?

?

C#中的事件也是通過封裝系統(tǒng)消息來實(shí)現(xiàn)的,如果你在WndProc函數(shù)中不處理該消息

那么,它會(huì)被交給系統(tǒng)來處理該消息,系統(tǒng)便會(huì)通過代理來實(shí)現(xiàn)鼠標(biāo)單擊的處理函數(shù),因此你可以通過

WndProc函數(shù)來攔截消息

?

====================================================================================

windows部分常量(不完整,有的管用,有的不管用)

????????? //常量的意義
????????? HTERROR = -2;
????????? HTTRANSPARENT = -1;
????????? HTNOWHERE = 0;
????????? HTCLIENT = 1;
????????? HTCAPTION = 2;
????????? HTSYSMENU = 3;
????????? HTGROWBOX = 4;
????????? HTSIZE = HTGROWBOX;
????????? HTMENU = 5;
????????? HTHSCROLL = 6;
????????? HTVSCROLL = 7;
????????? HTMINBUTTON = 8;
????????? HTMAXBUTTON = 9;
????????? HTLEFT = 10;
????????? HTRIGHT = 11;
????????? HTTOP = 12;
????????? HTTOPLEFT = 13;
????????? HTTOPRIGHT = 14;
????????? HTBOTTOM = 15;
????????? HTBOTTOMLEFT = 16;
????????? HTBOTTOMRIGHT = 17;
????????? HTBORDER = 18;
????????? HTREDUCE = HTMINBUTTON;
????????? HTZOOM = HTMAXBUTTON;
????????? HTSIZEFIRST = HTLEFT;
????????? HTSIZELAST = HTBOTTOMRIGHT;
????????? HTOBJECT = 19;
????????? HTCLOSE = 20;

?

====================================================================================

windows消息大全????

消息,就是指Windows發(fā)出的一個(gè)通知,告訴應(yīng)用程序某個(gè)事情發(fā)生了。
例如,單擊鼠標(biāo)、改變窗口尺寸、按下鍵盤上的一個(gè)鍵都會(huì)使Windows發(fā)送一個(gè)消息給應(yīng)用程序。
消息本身是作為一個(gè)記錄傳遞給應(yīng)用程序的,這個(gè)記錄中包含了消息的類型以及其他信息。
例如,對(duì)于單擊鼠標(biāo)所產(chǎn)生的消息來說,這個(gè)記錄中包含了單擊鼠標(biāo)時(shí)的坐標(biāo)。這個(gè)記錄類型叫做TMsg,?
它在Windows單元中是這樣聲明的:

??? HWND? hwnd;????? //目標(biāo)窗口句柄?
??? UINT? message;? //消息常量標(biāo)識(shí)符?
??? WPARAM? wParam; // 32位消息的特定附加信息?
??? LPARAM? lParam; // 32位消息的特定附加信息?
??? DWORD time;??? //消息創(chuàng)建時(shí)的時(shí)間?
??? TPoint pt;??? //消息創(chuàng)建時(shí)的鼠標(biāo)位置


??????
hwnd 32位的窗口句柄。窗口可以是任何類型的屏幕對(duì)象,因?yàn)閃in32能夠維護(hù)大多數(shù)可視對(duì)象的句柄(窗口、對(duì)話框、按鈕、編輯框等)。?
message 用于區(qū)別其他消息的常量值,這些常量可以是Windows單元中預(yù)定義的常量,也可以是自定義的常量。
wParam 通常是一個(gè)與消息有關(guān)的常量值,也可能是窗口或控件的句柄。
lParam 通常是一個(gè)指向內(nèi)存中數(shù)據(jù)的指針。

消息對(duì)應(yīng)的常量值在Windows SDK 文件 winuser.h?定義,如:?

WM_NULL = 0x0000;

WM_CREATE = 0x0001;?
應(yīng)用程序創(chuàng)建一個(gè)窗口

WM_DESTROY = 0x0002;?
一個(gè)窗口被銷毀

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;?
改變enable狀態(tài)

WM_SETREDRAW = 0x000B;?
設(shè)置窗口是否能重畫

WM_SETTEXT = 0x000C;?
應(yīng)用程序發(fā)送此消息來設(shè)置一個(gè)窗口的文本

WM_GETTEXT = 0x000D;?
應(yīng)用程序發(fā)送此消息來復(fù)制對(duì)應(yīng)窗口的文本到緩沖區(qū)
?
WM_GETTEXTLENGTH = 0x000E;?
得到與一個(gè)窗口有關(guān)的文本的長度(不包含空字符)

WM_PAINT = 0x000F;?
要求一個(gè)窗口重畫自己

WM_CLOSE = 0x0010;?
當(dāng)一個(gè)窗口或應(yīng)用程序要關(guān)閉時(shí)發(fā)送一個(gè)信號(hào)

WM_QUERYENDSESSION = 0x0011;?
當(dāng)用戶選擇結(jié)束對(duì)話框或程序自己調(diào)用ExitWindows函數(shù)

WM_QUIT = 0x0012;?
用來結(jié)束程序運(yùn)行或當(dāng)程序調(diào)用postquitmessage函數(shù)

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_SYSTEMERROR = 0x0017;

WM_SHOWWINDOW = 0x0018;?
當(dāng)隱藏或顯示窗口是發(fā)送此消息給這個(gè)窗口

WM_ACTIVATEAPP = 0x001C;?
發(fā)此消息給應(yīng)用程序哪個(gè)窗口是激活的,哪個(gè)是非激活的;
?
WM_FONTCHANGE = 0x001D;?
當(dāng)系統(tǒng)的字體資源庫變化時(shí)發(fā)送此消息給所有頂級(jí)窗口

WM_TIMECHANGE = 0x001E;?
當(dāng)系統(tǒng)的時(shí)間變化時(shí)發(fā)送此消息給所有頂級(jí)窗口

WM_CANCELMODE = 0x001F;?
發(fā)送此消息來取消某種正在進(jìn)行的摸態(tài)(操作)

WM_SETCURSOR = 0x0020;?
如果鼠標(biāo)引起光標(biāo)在某個(gè)窗口中移動(dòng)且鼠標(biāo)輸入沒有被捕獲時(shí),就發(fā)消息給某個(gè)窗口

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ā)送,通過WH_JOURNALPALYBACK的hook程序

WM_GETMINMAXINFO = 0x0024;?
此消息發(fā)送給窗口當(dāng)它將要改變大小或位置;

WM_PAINTICON = 0x0026;?
發(fā)送給最小化窗口當(dāng)它圖標(biāo)將要被重畫

WM_ICONERASEBKGND = 0x0027;?
此消息發(fā)送給某個(gè)最小化窗口,僅當(dāng)它在畫圖標(biāo)前它的背景必須被重畫

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, combo box, list box, list view control, or menu item 被創(chuàng)建時(shí) 發(fā)送此消息給控件的所有者

WM_DELETEITEM = 0x002D;?
當(dāng)the list box 或 combo box 被銷毀 或 當(dāng) 某些項(xiàng)被刪除通過LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 消息

WM_VKEYTOITEM = 0x002E;?
此消息有一個(gè)LBS_WANTKEYBOARDINPUT風(fēng)格的發(fā)出給它的所有者來響應(yīng)WM_KEYDOWN消息

WM_CHARTOITEM = 0x002F;?
此消息由一個(gè)LBS_WANTKEYBOARDINPUT風(fēng)格的列表框發(fā)送給他的所有者來響應(yīng)WM_CHAR消息

WM_SETFONT = 0x0030;?
當(dāng)繪制文本時(shí)程序發(fā)送此消息得到控件要用的顏色

WM_GETFONT = 0x0031;?
應(yīng)用程序發(fā)送此消息得到當(dāng)前控件繪制文本的字體

WM_SETHOTKEY = 0x0032;?
應(yīng)用程序發(fā)送此消息讓一個(gè)窗口與一個(gè)熱鍵相關(guān)連

WM_GETHOTKEY = 0x0033;?
應(yīng)用程序發(fā)送此消息來判斷熱鍵與某個(gè)窗口是否有關(guān)聯(lián)

WM_QUERYDRAGICON = 0x0037;?
此消息發(fā)送給最小化窗口,當(dāng)此窗口將要被拖放而它的類中沒有定義圖標(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ā)送此消息來判定combobox或listbox新增加的項(xiàng)的相對(duì)位置

WM_GETOBJECT = 0x003D;?
WM_COMPACTING = 0x0041;?
顯示內(nèi)存已經(jīng)很少了

WM_WINDOWPOSCHANGING = 0x0046;?
發(fā)送此消息給那個(gè)窗口的大小和位置將要被改變時(shí),來調(diào)用setwindowpos函數(shù)或其它窗口管理函數(shù)

WM_WINDOWPOSCHANGED = 0x0047;?
發(fā)送此消息給那個(gè)窗口的大小和位置已經(jīng)被改變時(shí),來調(diào)用setwindowpos函數(shù)或其它窗口管理函數(shù)

WM_POWER = 0x0048;(適用于16位的windows)?
當(dāng)系統(tǒng)將要進(jìn)入暫停狀態(tài)時(shí)發(fā)送此消息

WM_COPYDATA = 0x004A;?
當(dāng)一個(gè)應(yīng)用程序傳遞數(shù)據(jù)給另一個(gè)應(yīng)用程序時(shí)發(fā)送此消息

WM_CANCELJOURNAL = 0x004B;?
當(dāng)某個(gè)用戶取消程序日志激活狀態(tài),提交此消息給程序

WM_NOTIFY = 0x004E;?
當(dāng)某個(gè)控件的某個(gè)事件已經(jīng)發(fā)生或這個(gè)控件需要得到一些信息時(shí),發(fā)送此消息給它的父窗口

WM_INPUTLANGCHANGEREQUEST = 0x0050;?
當(dāng)用戶選擇某種輸入語言,或輸入語言的熱鍵改變

WM_INPUTLANGCHANGE = 0x0051;?
當(dāng)平臺(tái)現(xiàn)場(chǎng)已經(jīng)被改變后發(fā)送此消息給受影響的最頂級(jí)窗口

WM_TCARD = 0x0052;?
當(dāng)程序已經(jīng)初始化windows幫助例程時(shí)發(fā)送此消息給應(yīng)用程序

WM_HELP = 0x0053;?
此消息顯示用戶按下了F1,如果某個(gè)菜單是激活的,就發(fā)送此消息個(gè)此窗口關(guān)聯(lián)的菜單,否則就?
發(fā)送給有焦點(diǎn)的窗口,如果當(dāng)前都沒有焦點(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;?
公用控件,自定義控件和他們的父窗口通過此消息來判斷控件是使用ANSI還是UNICODE結(jié)構(gòu)?
在WM_NOTIFY消息,使用此控件能使某個(gè)控件與它的父控件之間進(jìn)行相互通信

WM_CONTEXTMENU = 0x007B;?
當(dāng)用戶某個(gè)窗口中點(diǎn)擊了一下右鍵就發(fā)送此消息給這個(gè)窗口
?
WM_STYLECHANGING = 0x007C;?
當(dāng)調(diào)用SETWINDOWLONG函數(shù)將要改變一個(gè)或多個(gè) 窗口的風(fēng)格時(shí)發(fā)送此消息給那個(gè)窗口

WM_STYLECHANGED = 0x007D;?
當(dāng)調(diào)用SETWINDOWLONG函數(shù)一個(gè)或多個(gè) 窗口的風(fēng)格后發(fā)送此消息給那個(gè)窗口

WM_DISPLAYCHANGE = 0x007E;?
當(dāng)顯示器的分辨率改變后發(fā)送此消息給所有的窗口

WM_GETICON = 0x007F;?
此消息發(fā)送給某個(gè)窗口來返回與某個(gè)窗口有關(guān)連的大圖標(biāo)或小圖標(biāo)的句柄;

WM_SETICON = 0x0080;?
程序發(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è)窗口,非客戶區(qū)正在銷毀

WM_NCCALCSIZE = 0x0083;?
當(dāng)某個(gè)窗口的客戶區(qū)域必須被核算時(shí)發(fā)送此消息

WM_NCHITTEST = 0x0084;
移動(dòng)鼠標(biāo),按住或釋放鼠標(biāo)時(shí)發(fā)生

WM_NCPAINT = 0x0085;?
程序發(fā)送此消息給某個(gè)窗口當(dāng)它(窗口)的框架必須被繪制時(shí);
?
WM_NCACTIVATE = 0x0086;?
此消息發(fā)送給某個(gè)窗口 僅當(dāng)它的非客戶區(qū)需要被改變來顯示是激活還是非激活狀態(tài);

WM_GETDLGCODE = 0x0087;?
發(fā)送此消息給某個(gè)與對(duì)話框程序關(guān)聯(lián)的控件,widdows控制方位鍵和TAB鍵使輸入進(jìn)入此控件?
通過響應(yīng)WM_GETDLGCODE消息,應(yīng)用程序可以把他當(dāng)成一個(gè)特殊的輸入控件并能處理它

WM_NCMOUSEMOVE = 0x00A0;?
當(dāng)光標(biāo)在一個(gè)窗口的非客戶區(qū)內(nèi)移動(dòng)時(shí)發(fā)送此消息給這個(gè)窗口 ,非客戶區(qū)為,窗體的標(biāo)題欄及窗的邊框體

WM_NCLBUTTONDOWN = 0x00A1;?
當(dāng)光標(biāo)在一個(gè)窗口的非客戶區(qū)同時(shí)按下鼠標(biāo)左鍵時(shí)提交此消息

WM_NCLBUTTONUP = 0x00A2;?
當(dāng)用戶釋放鼠標(biāo)左鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息;

WM_NCLBUTTONDBLCLK = 0x00A3;?
當(dāng)用戶雙擊鼠標(biāo)左鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息

WM_NCRBUTTONDOWN = 0x00A4;?
當(dāng)用戶按下鼠標(biāo)右鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息

WM_NCRBUTTONUP = 0x00A5;?
當(dāng)用戶釋放鼠標(biāo)右鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息

WM_NCRBUTTONDBLCLK = 0x00A6;?
當(dāng)用戶雙擊鼠標(biāo)右鍵同時(shí)光標(biāo)某個(gè)窗口在非客戶區(qū)十發(fā)送此消息

WM_NCMBUTTONDOWN = 0x00A7;?
當(dāng)用戶按下鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息

WM_NCMBUTTONUP = 0x00A8;?
當(dāng)用戶釋放鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息

WM_NCMBUTTONDBLCLK = 0x00A9;?
當(dāng)用戶雙擊鼠標(biāo)中鍵同時(shí)光標(biāo)又在窗口的非客戶區(qū)時(shí)發(fā)送此消息

WM_KEYFIRST = 0x0100;?
WM_KEYDOWN = 0x0100;?
//按下一個(gè)鍵

WM_KEYUP = 0x0101;?
//釋放一個(gè)鍵

WM_CHAR = 0x0102;?
//按下某鍵,并已發(fā)出WM_KEYDOWN, WM_KEYUP消息

WM_DEADCHAR = 0x0103;?
當(dāng)用translatemessage函數(shù)翻譯WM_KEYUP消息時(shí)發(fā)送此消息給擁有焦點(diǎn)的窗口

WM_SYSKEYDOWN = 0x0104;?
當(dāng)用戶按住ALT鍵同時(shí)按下其它鍵時(shí)提交此消息給擁有焦點(diǎn)的窗口;

WM_SYSKEYUP = 0x0105;?
當(dāng)用戶釋放一個(gè)鍵同時(shí)ALT 鍵還按著時(shí)提交此消息給擁有焦點(diǎn)的窗口

WM_SYSCHAR = 0x0106;?
當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后提交此消息給擁有焦點(diǎn)的窗口

WM_SYSDEADCHAR = 0x0107;?
當(dāng)WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函數(shù)翻譯后發(fā)送此消息給擁有焦點(diǎn)的窗口

WM_KEYLAST = 0x0108;?
WM_INITDIALOG = 0x0110;?
在一個(gè)對(duì)話框程序被顯示前發(fā)送此消息給它,通常用此消息初始化控件和執(zhí)行其它任務(wù)

WM_COMMAND = 0x0111;?
當(dāng)用戶選擇一條菜單命令項(xiàng)或當(dāng)某個(gè)控件發(fā)送一條消息給它的父窗口,一個(gè)快捷鍵被翻譯

WM_SYSCOMMAND = 0x0112;?
當(dāng)用戶選擇窗口菜單的一條命令或當(dāng)用戶選擇最大化或最小化時(shí)那個(gè)窗口會(huì)收到此消息

WM_TIMER = 0x0113; //發(fā)生了定時(shí)器事件?
WM_HSCROLL = 0x0114;?
當(dāng)一個(gè)窗口標(biāo)準(zhǔn)水平滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給那個(gè)窗口,也發(fā)送給擁有它的控件

WM_VSCROLL = 0x0115;?
當(dāng)一個(gè)窗口標(biāo)準(zhǔn)垂直滾動(dòng)條產(chǎn)生一個(gè)滾動(dòng)事件時(shí)發(fā)送此消息給那個(gè)窗口也,發(fā)送給擁有它的控件

WM_INITMENU = 0x0116;?
當(dāng)一個(gè)菜單將要被激活時(shí)發(fā)送此消息,它發(fā)生在用戶菜單條中的某項(xiàng)或按下某個(gè)菜單鍵,它允許程序在顯示前更改菜單

WM_INITMENUPOPUP = 0x0117;?
當(dāng)一個(gè)下拉菜單或子菜單將要被激活時(shí)發(fā)送此消息,它允許程序在它顯示前更改菜單,而不要改變?nèi)?/p>

WM_MENUSELECT = 0x011F;?
當(dāng)用戶選擇一條菜單項(xiàng)時(shí)發(fā)送此消息給菜單的所有者(一般是窗口)

WM_MENUCHAR = 0x0120;?
當(dāng)菜單已被激活用戶按下了某個(gè)鍵(不同于加速鍵),發(fā)送此消息給菜單的所有者;

WM_ENTERIDLE = 0x0121;?
當(dāng)一個(gè)模態(tài)對(duì)話框或菜單進(jìn)入空載狀態(tài)時(shí)發(fā)送此消息給它的所有者,一個(gè)模態(tài)對(duì)話框或菜單進(jìn)入空載狀態(tài)就是在處理完一條或幾條先前的消息后沒有消息它的列隊(duì)中等待

WM_MENURBUTTONUP = 0x0122;?
WM_MENUDRAG = 0x0123;?
WM_MENUGETOBJECT = 0x0124;?
WM_UNINITMENUPOPUP = 0x0125;?
WM_MENUCOMMAND = 0x0126;?
WM_CHANGEUISTATE = 0x0127;?
WM_UPDATEUISTATE = 0x0128;?
WM_QUERYUISTATE = 0x0129;?
WM_CTLCOLORMSGBOX = 0x0132;?
在windows繪制消息框前發(fā)送此消息給消息框的所有者窗口,通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置消息框的文本和背景顏色

WM_CTLCOLOREDIT = 0x0133;?
當(dāng)一個(gè)編輯型控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置編輯框的文本和背景顏色

WM_CTLCOLORLISTBOX = 0x0134;?
當(dāng)一個(gè)列表框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置列表框的文本和背景顏色

WM_CTLCOLORBTN = 0x0135;?
當(dāng)一個(gè)按鈕控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置按紐的文本和背景顏色

WM_CTLCOLORDLG = 0x0136;?
當(dāng)一個(gè)對(duì)話框控件將要被繪制前發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置對(duì)話框的文本背景顏色

WM_CTLCOLORSCROLLBAR= 0x0137;?
當(dāng)一個(gè)滾動(dòng)條控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置滾動(dòng)條的背景顏色

WM_CTLCOLORSTATIC = 0x0138;?
當(dāng)一個(gè)靜態(tài)控件將要被繪制時(shí)發(fā)送此消息給它的父窗口;通過響應(yīng)這條消息,所有者窗口可以通過使用給定的相關(guān)顯示設(shè)備的句柄來設(shè)置靜態(tài)控件的文本和背景顏色

WM_MOUSEFIRST = 0x0200;

WM_MOUSEMOVE = 0x0200;?
// 移動(dòng)鼠標(biāo)?
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ā)送此消息個(gè)當(dāng)前有焦點(diǎn)的控件

WM_MOUSELAST = 0x020A;?
WM_PARENTNOTIFY = 0x0210;?
當(dāng)MDI子窗口被創(chuàng)建或被銷毀,或用戶按了一下鼠標(biāo)鍵而光標(biāo)在子窗口上時(shí)發(fā)送此消息給它的父窗口

WM_ENTERMENULOOP = 0x0211;?
發(fā)送此消息通知應(yīng)用程序的主窗口that已經(jīng)進(jìn)入了菜單循環(huán)模式

WM_EXITMENULOOP = 0x0212;?
發(fā)送此消息通知應(yīng)用程序的主窗口that已退出了菜單循環(huán)模式

WM_NEXTMENU = 0x0213;?
WM_SIZING = 532;?
當(dāng)用戶正在調(diào)整窗口大小時(shí)發(fā)送此消息給窗口;通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置也可以修改他們

WM_CAPTURECHANGED = 533;?
發(fā)送此消息 給窗口當(dāng)它失去捕獲的鼠標(biāo)時(shí);

WM_MOVING = 534;?
當(dāng)用戶在移動(dòng)窗口時(shí)發(fā)送此消息,通過此消息應(yīng)用程序可以監(jiān)視窗口大小和位置也可以修改他們;

WM_POWERBROADCAST = 536;?
此消息發(fā)送給應(yīng)用程序來通知它有關(guān)電源管理事件;

WM_DEVICECHANGE = 537;?
當(dāng)設(shè)備的硬件配置改變時(shí)發(fā)送此消息給應(yīng)用程序或設(shè)備驅(qū)動(dòng)程序

WM_IME_STARTCOMPOSITION = 0x010D;?
WM_IME_ENDCOMPOSITION = 0x010E;?
WM_IME_COMPOSITION = 0x010F;?
WM_IME_KEYLAST = 0x010F;?
WM_IME_SETCONTEXT = 0x0281;?
WM_IME_NOTIFY = 0x0282;?
WM_IME_CONTROL = 0x0283;?
WM_IME_COMPOSITIONFULL = 0x0284;?
WM_IME_SELECT = 0x0285;?
WM_IME_CHAR = 0x0286;?
WM_IME_REQUEST = 0x0288;?
WM_IME_KEYDOWN = 0x0290;?
WM_IME_KEYUP = 0x0291;?
WM_MDICREATE = 0x0220;?
應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來創(chuàng)建一個(gè)MDI 子窗口

WM_MDIDESTROY = 0x0221;?
應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口來關(guān)閉一個(gè)MDI 子窗口

WM_MDIACTIVATE = 0x0222;?
應(yīng)用程序發(fā)送此消息給多文檔的客戶窗口通知客戶窗口激活另一個(gè)MDI子窗口,當(dāng)客戶窗口收到此消息后,它發(fā)出WM_MDIACTIVE消息給MDI子窗口(未激活)激活它;

WM_MDIRESTORE = 0x0223;?
程序 發(fā)送此消息給MDI客戶窗口讓子窗口從最大最小化恢復(fù)到原來大小

WM_MDINEXT = 0x0224;?
程序 發(fā)送此消息給MDI客戶窗口激活下一個(gè)或前一個(gè)窗口

WM_MDIMAXIMIZE = 0x0225;?
程序發(fā)送此消息給MDI客戶窗口來最大化一個(gè)MDI子窗口;

WM_MDITILE = 0x0226;?
程序 發(fā)送此消息給MDI客戶窗口以平鋪方式重新排列所有MDI子窗口

WM_MDICASCADE = 0x0227;?
程序 發(fā)送此消息給MDI客戶窗口以層疊方式重新排列所有MDI子窗口

WM_MDIICONARRANGE = 0x0228;?
程序 發(fā)送此消息給MDI客戶窗口重新排列所有最小化的MDI子窗口

WM_MDIGETACTIVE = 0x0229;?
程序 發(fā)送此消息給MDI客戶窗口來找到激活的子窗口的句柄

WM_MDISETMENU = 0x0230;?
程序 發(fā)送此消息給MDI客戶窗口用MDI菜單代替子窗口的菜單

WM_ENTERSIZEMOVE = 0x0231;?
WM_EXITSIZEMOVE = 0x0232;?
WM_DROPFILES = 0x0233;?
WM_MDIREFRESHMENU = 0x0234;?
WM_MOUSEHOVER = 0x02A1;?
WM_MOUSELEAVE = 0x02A3;?
WM_CUT = 0x0300;?
程序發(fā)送此消息給一個(gè)編輯框或combobox來刪除當(dāng)前選擇的文本

WM_COPY = 0x0301;?
程序發(fā)送此消息給一個(gè)編輯框或combobox來復(fù)制當(dāng)前選擇的文本到剪貼板

WM_PASTE = 0x0302;?
程序發(fā)送此消息給editcontrol或combobox從剪貼板中得到數(shù)據(jù)

WM_CLEAR = 0x0303;?
程序發(fā)送此消息給editcontrol或combobox清除當(dāng)前選擇的內(nèi)容

WM_UNDO = 0x0304;?
程序發(fā)送此消息給editcontrol或combobox撤消最后一次操作
WM_RENDERFORMAT = 0x0305;

WM_RENDERALLFORMATS = 0x0306;?
WM_DESTROYCLIPBOARD = 0x0307;?
當(dāng)調(diào)用ENPTYCLIPBOARD函數(shù)時(shí) 發(fā)送此消息給剪貼板的所有者

WM_DRAWCLIPBOARD = 0x0308;?
當(dāng)剪貼板的內(nèi)容變化時(shí)發(fā)送此消息給剪貼板觀察鏈的第一個(gè)窗口;它允許用剪貼板觀察窗口來?
顯示剪貼板的新內(nèi)容;

WM_PAINTCLIPBOARD = 0x0309;
當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)需要重畫;

WM_VSCROLLCLIPBOARD = 0x030A;?
WM_SIZECLIPBOARD = 0x030B;?
當(dāng)剪貼板包含CF_OWNERDIPLAY格式的數(shù)據(jù)并且剪貼板觀察窗口的客戶區(qū)域的大小已經(jīng)改變是此消息通過剪貼板觀察窗口發(fā)送給剪貼板的所有者;
?
WM_ASKCBFORMATNAME = 0x030C;?
通過剪貼板觀察窗口發(fā)送此消息給剪貼板的所有者來請(qǐng)求一個(gè)CF_OWNERDISPLAY格式的剪貼板的名字

WM_CHANGECBCHAIN = 0x030D;?
當(dāng)一個(gè)窗口從剪貼板觀察鏈中移去時(shí)發(fā)送此消息給剪貼板觀察鏈的第一個(gè)窗口;

WM_HSCROLLCLIPBOARD = 0x030E;?
此消息通過一個(gè)剪貼板觀察窗口發(fā)送給剪貼板的所有者 ;它發(fā)生在當(dāng)剪貼板包含CFOWNERDISPALY格式的數(shù)據(jù)并且有個(gè)事件在剪貼板觀察窗的水平滾動(dòng)條上;所有者應(yīng)滾動(dòng)剪貼板圖象并更新滾動(dòng)條的值;
?
WM_QUERYNEWPALETTE = 0x030F;?
此消息發(fā)送給將要收到焦點(diǎn)的窗口,此消息能使窗口在收到焦點(diǎn)時(shí)同時(shí)有機(jī)會(huì)實(shí)現(xiàn)他的邏輯調(diào)色板

WM_PALETTEISCHANGING= 0x0310;?
當(dāng)一個(gè)應(yīng)用程序正要實(shí)現(xiàn)它的邏輯調(diào)色板時(shí)發(fā)此消息通知所有的應(yīng)用程序

WM_PALETTECHANGED = 0x0311;?
此消息在一個(gè)擁有焦點(diǎn)的窗口實(shí)現(xiàn)它的邏輯調(diào)色板后發(fā)送此消息給所有頂級(jí)并重疊的窗口,以此來改變系統(tǒng)調(diào)色板

WM_HOTKEY = 0x0312;?
當(dāng)用戶按下由REGISTERHOTKEY函數(shù)注冊(cè)的熱鍵時(shí)提交此消息

WM_PRINT = 791;?
應(yīng)用程序發(fā)送此消息僅當(dāng)WINDOWS或其它應(yīng)用程序發(fā)出一個(gè)請(qǐng)求要求繪制一個(gè)應(yīng)用程序的一部分;

WM_PRINTCLIENT = 792;?
WM_HANDHELDFIRST = 856;?
WM_HANDHELDLAST = 863;?
WM_PENWINFIRST = 0x0380;?
WM_PENWINLAST = 0x038F;?
WM_COALESCE_FIRST = 0x0390;?
WM_COALESCE_LAST = 0x039F;?
WM_DDE_FIRST = 0x03E0;?
WM_DDE_INITIATE = WM_DDE_FIRST + 0;?
一個(gè)DDE客戶程序提交此消息開始一個(gè)與服務(wù)器程序的會(huì)話來響應(yīng)那個(gè)指定的程序和主題名;

WM_DDE_TERMINATE = WM_DDE_FIRST + 1;?
一個(gè)DDE應(yīng)用程序(無論是客戶還是服務(wù)器)提交此消息來終止一個(gè)會(huì)話;

WM_DDE_ADVISE = WM_DDE_FIRST + 2;?
一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來請(qǐng)求服務(wù)器每當(dāng)數(shù)據(jù)項(xiàng)改變時(shí)更新它

WM_DDE_UNADVISE = WM_DDE_FIRST + 3;?
一個(gè)DDE客戶程序通過此消息通知一個(gè)DDE服務(wù)程序不更新指定的項(xiàng)或一個(gè)特殊的剪貼板格式的項(xiàng)

WM_DDE_ACK = WM_DDE_FIRST + 4;?
此消息通知一個(gè)DDE(動(dòng)態(tài)數(shù)據(jù)交換)程序已收到并正在處理WM_DDE_POKE, WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, or WM_DDE_INITIAT消息

WM_DDE_DATA = WM_DDE_FIRST + 5;?
一個(gè)DDE服務(wù)程序提交此消息給DDE客戶程序來傳遞個(gè)一數(shù)據(jù)項(xiàng)給客戶或通知客戶的一條可用數(shù)據(jù)項(xiàng)

WM_DDE_REQUEST = WM_DDE_FIRST + 6;?
一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來請(qǐng)求一個(gè)數(shù)據(jù)項(xiàng)的值;

WM_DDE_POKE = WM_DDE_FIRST + 7;?
一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序,客戶使用此消息來請(qǐng)求服務(wù)器接收一個(gè)未經(jīng)同意的數(shù)據(jù)項(xiàng);服務(wù)器通過答復(fù)WM_DDE_ACK消息提示是否它接收這個(gè)數(shù)據(jù)項(xiàng);
?
WM_DDE_EXECUTE = WM_DDE_FIRST + 8;?
一個(gè)DDE客戶程序提交此消息給一個(gè)DDE服務(wù)程序來發(fā)送一個(gè)字符串給服務(wù)器讓它象串行命令一樣被處理,服務(wù)器通過提交WM_DDE_ACK消息來作回應(yīng);
?
WM_DDE_LAST = WM_DDE_FIRST + 8;?
WM_APP = 0x8000;?
WM_USER = 0x0400;?
此消息能幫助應(yīng)用程序自定義私有消息;

?

通知消息(Notification message)是指這樣一種消息,一個(gè)窗口內(nèi)的子控件發(fā)生了一些事情,
需要通知父窗口。通知消息只適用于標(biāo)準(zhǔn)的窗口控件如按鈕、列表框、組合框、編輯框,
以及Windows 95公共控件如樹狀視圖、列表視圖等。
例如,單擊或雙擊一個(gè)控件、在控件中選擇部分文本、操作控件的滾動(dòng)條都會(huì)產(chǎn)生通知消息。?
按扭?
B N _ C L I C K E D //用戶單擊了按鈕?
B N _ D I S A B L E //按鈕被禁止?
B N _ D O U B L E C L I C K E D //用戶雙擊了按鈕?
B N _ H I L I T E //用戶加亮了按鈕?
B N _ PA I N T按鈕應(yīng)當(dāng)重畫?
B N _ U N H I L I T E加亮應(yīng)當(dāng)去掉?
組合框?
C B N _ C L O S E U P組合框的列表框被關(guān)閉?
C B N _ D B L C L K用戶雙擊了一個(gè)字符串?
C B N _ D R O P D O W N組合框的列表框被拉出?
C B N _ E D I T C H A N G E用戶修改了編輯框中的文本?
C B N _ E D I T U P D AT E編輯框內(nèi)的文本即將更新?
C B N _ E R R S PA C E組合框內(nèi)存不足?
C B N _ K I L L F O C U S組合框失去輸入焦點(diǎn)?
C B N _ S E L C H A N G E在組合框中選擇了一項(xiàng)?
C B N _ S E L E N D C A N C E L用戶的選擇應(yīng)當(dāng)被取消?
C B N _ S E L E N D O K用戶的選擇是合法的?
C B N _ S E T F O C U S組合框獲得輸入焦點(diǎn)?
編輯框?
E N _ C H A N G E編輯框中的文本己更新?
E N _ E R R S PA C E編輯框內(nèi)存不足?
E N _ H S C R O L L用戶點(diǎn)擊了水平滾動(dòng)條?
E N _ K I L L F O C U S編輯框正在失去輸入焦點(diǎn)?
E N _ M A X T E X T插入的內(nèi)容被截?cái)?span id="ozvdkddzhkzd" class="Apple-converted-space">?
E N _ S E T F O C U S編輯框獲得輸入焦點(diǎn)?
E N _ U P D AT E編輯框中的文本將要更新?
E N _ V S C R O L L用戶點(diǎn)擊了垂直滾動(dòng)條消息含義?
列表框?
L B N _ D B L C L K用戶雙擊了一項(xiàng)?
L B N _ E R R S PA C E列表框內(nèi)存不夠?
L B N _ K I L L F O C U S列表框正在失去輸入焦點(diǎn)?
L B N _ S E L C A N C E L選擇被取消?
L B N _ S E L C H A N G E選擇了另一項(xiàng)?
L B N _ S E T F O C U S列表框獲得輸入焦點(diǎn)

轉(zhuǎn)載于:https://www.cnblogs.com/lanmiao/articles/2212907.html

總結(jié)

以上是生活随笔為你收集整理的C#按关闭按钮实现最小化,按ESC才关闭的实现【含系统消息大全】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。