亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

定制控件消息處理函數

系統 2050 0

Windows SDK筆記(三):定制控件消息處理函數
作者: 馮明德

一、概述
控件的消息處理函數是由系統定義好了的,通常情況下,不需要自己提供。
但當需要對控件進行特殊控制時,可以提供一個消息處理函數,替換原來的消息處理函數。
自己的處理完成后,再調用控件的缺省消息處理。


二、相關函數
1.窗口類的屬性可以通過GetWindowLong和SetWindowLong進行讀取和設置

    LONG GetWindowLong(

	HWND hWnd,  // handle to window

	int nIndex  // offset of value to retrieve

	);

	

LONG SetWindowLong(

  HWND hWnd,       // handle to window

  int nIndex,      // offset of value to set

  LONG dwNewLong   // new value

);
  
可以返回或設置以下內容:
nIndex值 意義
GWL_EXSTYLE 擴展風格
GWL_STYLE 風格
GWL_WNDPROC 消息處理函數
GWL_HINSTANCE 實例
GWL_ID 窗口ID
GWL_USERDATA 用戶數據
DWL_DLGPROC 對話框消息處理函數
DWL_MSGRESULT
DWL_USER


所以使用

    OldMsgProc = (WNDPROC)SetWindowLong (hControlWnd, GWL_WNDPROC, (LONG)MyMsgProc);
  
將控件消息處理函數替換成MyMsgProc,原處理函數被OldMsgProc記錄。

2.調用消息處理函數

    LRESULT CallWindowProc(

	WNDPROC lpPrevWndFunc,  // pointer to previous procedure

	HWND hWnd,              // handle to window

	UINT Msg,               // message

	WPARAM wParam,          // first message parameter

	LPARAM lParam           // second message parameter

);
  

三、示例
1.提供新處理函數
    //記錄原來處理函數的全局變量

WNDPROC OldMsgProc;



//新消息處理函數

LRESULT MyMsgProc(HWND hwnd,UINT message, WPARAM wParam, LPARAM lParam)

{

	switch(message)

	{

	case WM_LBUTTONDOWN:

		::MessageBox(NULL,"click!","",MB_OK);

	}

	//調用控件原來的消息處理函數

	return CallWindowProc(OldMsgProc,hwnd,message,wParam,lParam);

}
  

2.建立窗口后,更改消息處理函數
    case WM_CREATE:

{

	HWND hControlWnd = CreateWindowEx(0,"BUTTON",

		TEXT("按鈕(&A)"),

		WS_CHILD | WS_VISIBLE|BS_PUSHBUTTON,

		10,

		10,

		100,

		100,

		hwnd,

		(HMENU)1000,	//控件ID

		((LPCREATESTRUCT) lParam)->hInstance,	//實例句柄

		NULL);



	//嵌入新的消息處理函數

	OldMsgProc = (WNDPROC) SetWindowLong (hControlWnd, GWL_WNDPROC, (LONG)MyMsgProc);

}

return 0;
  

定制控件消息處理函數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天天操 | 伊人久久大香焦 | 国产69精品久久久久99 | 一区二区三 | 级毛片| 一本久久a久久精品亚洲 | 无码免费一区二区三区免费播放 | 伊人久久国产免费观看视频 | 亚洲第一区在线 | 久久伦理影院 | www.深夜| 日韩一级特黄毛片在线看 | 成人久久18免费网站游戏 | 国产久视频 | 久久99九九 | 免费高清在线影片一区 | 成 人 黄 色视频免费播放 | 四虎永久地址4hu2019 | 99热久久这里只有精品9 | 天天做天天做天天综合网 | 亚洲精品你懂的 | 91精品国产91久久久久青草 | 久草综合在线观看 | 免费观看日本高清a毛片 | 国产末成年女av片 | 欧美日韩一区二区高清视 | 日本一级一片免在线观看 | 日韩精品福利视频一区二区三区 | 亚洲黄色免费在线观看 | 97视频免费 | 草草草在线观看 | 99国产精品免费视频观看 | 天天狠操 | 极品女神西比尔久久精品 | 久青草视频在线 | 色综合久 | 在线观看欧美国产 | 真人一级一级特黄高清毛片 | 九九视频九九 | 天天爱夜夜爱 | 中文一级黄色片 |