青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
一年十二月  誰主春秋
關注:基礎系統(tǒng)工程 密碼學 人工智能
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-163 評論-223 文章-30 trackbacks-0
ATL和WTL中的消息反射
WTL
是窗口模板庫(Windows Library Template)的簡稱,是一套輕量級C++ GUI庫,因為它使用了C++模板封裝了窗口界面操作API和消息映射處理,它擴展了ATL中的UI窗口部分,并支持如下更多的功能特性:
(1) 對話框和通用控件:包括對話框數(shù)據(jù)交換(DDX),子類化,控件消息通知與反射等
(2) 工具欄和狀態(tài)欄:包括工具條UI狀態(tài)更新,多窗格狀態(tài)條及UI狀態(tài)更新等
(3) 分隔窗口:包括窗格容器,嵌套分隔,特殊繪制等
(4) 屬性頁和向?qū)В喊▽傩员恚胀▽傩皂摚驅(qū)傩皂摰?/span>
(5) GDI類等:包括GDI封裝類,通用對話框等
(6) 使用ActiveX控件:包括使用控件類,調(diào)用控件的方法,控件事件映射處理等
(7) 高級對話框UI類:包括自繪和外觀定制類,新控件類,控件UI狀態(tài)更新,對話框數(shù)據(jù)驗證DDV等
(8) 支持拖放操作:包括拖放接口實現(xiàn)類,最近使用文件列表等
綜上所述,使用WTL幾乎可以實現(xiàn)MFC所能實現(xiàn)的功能與界面,而且生成的執(zhí)行文件體積更小,不需要動態(tài)鏈接庫就可直接快速地執(zhí)行。
根據(jù)WIN32窗口原理,當事件發(fā)生的時候,一般由父窗口接收其子窗口或控件的通知或命令消息,在這里父窗口是消息接收者,子窗口或控件是消息發(fā)送者,那么誰是消息處理者呢?實際上由誰來處理消息只是代碼上的邏輯,既可以在父窗口的窗口過程回調(diào)內(nèi)處理,也可以在子窗口或控件的窗口過程回調(diào)內(nèi)處理,在哪處理更方便合理就在哪處理,如果是在子窗口或控件窗口過程回調(diào)內(nèi)處理,那么就需要作額外的處理了,也就是在父窗口中將消息反射給發(fā)送者,進而再由發(fā)送者處理。下面以父窗口為打開文件對話框,雙擊它的列表視圖控件為例,給出運用上面
(1)中的控件消息通知與反射來
處理NM_DBLCLK消息的兩種實現(xiàn)方式。
繼承方式:由控件處理消息
從CWindowImpl模板基類派生一個子窗口或控件子類即listview子類,添加消息映射項和消息處理函數(shù),消息映射項用REFLECTED_NOTIFY_XXX或REFLECTED_COMMAND_XXX系列反射宏實現(xiàn),具體使用哪個宏,決定于是否通知或命令消息,及消息對應的ID和通知碼。
1
class
CFileListViewCtrl
:
public
CWindowImpl
<
CFileListViewCtrl
,
CListViewCtrl
>
2
{
3
protected
:
4
BEGIN_MSG_MAP(CFileListViewCtrl)
5
REFLECTED_NOTIFY_CODE_HANDLER_EX
(NM_DBLCLK,OnListViewDblclk)
//
反射通知消息處理宏
6
CHAIN_MSG_MAP(CListViewCtrl)
7
END_MSG_MAP()
8
LRESULT
OnListViewDblclk
(NMHDR
*
pNMHDR);
//
消息響應處理函數(shù)
9
}
;
在父窗口類消息映射鏈中最后添加反射通知宏REFLECT_NOTIFICATIONS()項。
1
class
COpenFileDlg
:
public
CDialogImpl
<
COpenFileDlg
>
,
public
CWinDataExchange
<
COpenFileDlg
>
2
{
3
public
:
4
COpenFileDlg();
5
~
COpenFileDlg();
6
enum
{ IDD
=
IDD_OPEN_FILE_DLG }
;
7
8
protected
:
9
BEGIN_MSG_MAP(COpenFileDlg)
10
MESSAGE_HANDLER(WM_INITDIALOG,OnInitDialog)
11
REFLECT_NOTIFICATIONS
()
//
消息反射通知宏
12
END_MSG_MAP()
13
14
BEGIN_DDX_MAP(COpenFileDlg)
15
DDX_CONTROL(IDC_LIST_FILE,m_list_File)
16
END_DDX_MAP()
17
18
LRESULT OnInitDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL
&
bHandle);
19
20
private
:
21
CFileListViewCtrl
m_list_File;
//
使用派生類實例作為成員變量
22
}
;
成員方式:由父窗口處理消息
直接使用ATL中的包含窗口模板類CContainedWindowT,參數(shù)為子控件的類名即listviewctrl,實例化為父窗口類的一個成員變量,在父窗口類消息映射鏈中添加ALT_MSG_MAP宏來實現(xiàn)消息分派,其參數(shù)為分派ID,這個ID為成員變量初始化時指定的常量;添加反射通知宏REFLECT_NOTIFICATIONS(),注意ALT_MSG_MAP宏必須在反射通知宏REFLECT_NOTIFICATIONS之后。
1
class
COpenFileDlg
:
public
CDialogImpl
<
COpenFileDlg
>
,
public
CWinDataExchange
<
COpenFileDlg
>
2
{
3
public
:
4
COpenFileDlg();
5
~
COpenFileDlg();
6
enum
{ IDD
=
IDD_OPEN_FILE_DLG }
;
7
8
protected
:
9
BEGIN_MSG_MAP(COpenFileDlg)
10
MESSAGE_HANDLER(WM_INITDIALOG,OnInitDialog)
11
REFLECT_NOTIFICATIONS
()
//
消息反射通知宏
12
ALT_MSG_MAP
(
1
)
//
消息分派宏
13
REFLECTED_NOTIFY_CODE_HANDLER_EX
(NM_DBLCLK,OnListViewDblclk)
//
反射通知消息處理宏
14
END_MSG_MAP()
15
16
BEGIN_DDX_MAP(COpenFileDlg)
17
DDX_CONTROL(IDC_LIST_FILE,m_list_File)
18
END_DDX_MAP()
19
20
LRESULT OnInitDialog(UINT uMsg,WPARAM wParam,LPARAM lParam,BOOL
&
bHandle);
21
LRESULT
OnListViewDblclk
(NMHDR
*
pNMHDR);
//
消息響應處理函數(shù)
22
private
:
23
CContainedWindowT
<
CListViewCtrl
>
m_list_File;
//
實例化包含窗口模板類作為成員變量
24
}
;
在父窗口內(nèi)需要初始化m_list_File以指定分派ID號。
1
COpenFileDlg
::
COpenFileDlg
():
2
m_list_File(
t
his
,
1
)
// 指定消息分派ID為1
3
{
4
}
posted on 2010-06-14 17:50
春秋十二月
閱讀(6068)
評論(0)
編輯
收藏
引用
所屬分類:
C/C++
只有注冊用戶
登錄
后才能發(fā)表評論。
相關文章:
使用CString GetBuffer自適應獲取計算機名稱
一種使用函數(shù)指針實現(xiàn)狀態(tài)機的方法
重載運算符之應用: 支持C式結構的一些運算
基于策略模式的定制new和delete
一種簡單的跨平臺信號量
一種簡單的跨平臺互斥鎖
一種簡單的跨平臺用戶態(tài)自旋鎖
GCC原子操作類模板
模板元編程(3):類型選擇
模板元編程(2):計算最值
網(wǎng)站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
本博客所有隨筆均為原創(chuàng),因為不定期維護更新,所以轉載請注明出處,如有問題和建議,請留言或評論,發(fā)表您的寶貴意見,藉此平臺以分享交流、共同進步。
聯(lián)系方式:微信math-engineer
<
2024年2月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(81)
給我留言
查看公開留言
查看私人留言
隨筆分類
(162)
Algorithm(50)
C/C++(24)
Compiler(25)
Compute Theory(5)
Database(4)
Network(17)
Opensrc(13)
System(24)
隨筆檔案
(163)
2025年9月 (1)
2025年7月 (1)
2025年6月 (2)
2025年4月 (2)
2024年12月 (1)
2024年11月 (1)
2024年9月 (1)
2024年8月 (2)
2024年6月 (1)
2024年5月 (1)
2024年4月 (1)
2024年3月 (2)
2024年2月 (2)
2023年12月 (1)
2023年11月 (2)
2023年10月 (2)
2023年9月 (37)
2021年12月 (1)
2021年10月 (1)
2021年9月 (1)
2021年2月 (1)
2020年5月 (3)
2020年4月 (1)
2019年11月 (4)
2019年7月 (1)
2018年11月 (1)
2017年12月 (1)
2016年12月 (1)
2016年11月 (2)
2016年10月 (1)
2016年9月 (1)
2016年8月 (3)
2016年7月 (4)
2016年5月 (1)
2015年10月 (2)
2015年9月 (1)
2015年6月 (2)
2015年5月 (3)
2015年2月 (1)
2015年1月 (1)
2014年12月 (2)
2014年4月 (2)
2014年3月 (1)
2014年1月 (1)
2013年10月 (1)
2013年9月 (1)
2013年8月 (3)
2013年5月 (1)
2013年3月 (1)
2012年11月 (1)
2012年9月 (3)
2012年8月 (1)
2012年7月 (1)
2012年6月 (5)
2012年5月 (3)
2011年12月 (5)
2011年11月 (1)
2011年10月 (5)
2011年8月 (7)
2011年7月 (6)
2011年6月 (6)
2010年6月 (1)
2009年12月 (1)
2009年8月 (1)
2009年7月 (1)
2009年6月 (1)
2009年4月 (3)
文章分類
(30)
詩詞作品集(30)
關注的開源項目
LLVM
編譯系統(tǒng)
nginx
高性能Web服務器
OpenSSL
密碼學庫
suricata
網(wǎng)絡IPS引擎
最新隨筆
1.?關于LLL算法的補充證明
2.?關于分圓域的一般結論
3.?一個歐拉數(shù)整除問題的兩種證法
4.?有限域上的特征與指數(shù)和之擴展
5.?二元二次型的相似變換、正定性與正交分解
6.?關于群的一些結論及應用
7.?不定方程的代數(shù)數(shù)論解法
8.?關于橢圓曲線的驗證計算
9.?不可約多項式判別算法的改正
10.?論證有限域上平方根的求解
積分與排名
積分 - 422829
排名 - 55
最新評論
1.?re: 一種攔截Linux原始套接字IO的方法[未登錄]
很有前途和很有錢途啊。
--chipset
2.?re: 一種攔截Linux原始套接字IO的方法[未登錄]
@chipset
是的
--春秋十二月
3.?re: 一種攔截Linux原始套接字IO的方法[未登錄]
工作是做網(wǎng)絡安全?
--chipset
4.?re: 一種使用函數(shù)指針實現(xiàn)狀態(tài)機的方法
函數(shù)指針實現(xiàn)狀態(tài)機
--linda
5.?re: 多標簽視圖類CTabView的設計實現(xiàn)
為啥代碼缺少一些呢,給新手個完整點的啊
--pekingliu
6.?re: 工作線程與消息循環(huán)
從消息隊列取出消息 mark了
--mmocake
7.?re: 一種簡單的跨平臺套接字管道
評論內(nèi)容較長,點擊標題查看
--IT搬運工
8.?re: 一種簡單的跨平臺套接字管道
windows僅支持af_init和af_init6地址族有錯別字么?
af_init和af_init6
--IT搬運工
9.?re: Shell應用(8):使用awk定位反匯編輸出[未登錄]
厲害
--Chipset
10.?re: TCP分組丟失時的狀態(tài)變遷
不錯
--Binky
閱讀排行榜
1.?基于OpenSSL實現(xiàn)的安全連接(14069)
2.?字符串16進制顯示(12918)
3.?基于boost asio實現(xiàn)的ssl socket框架(12363)
4.?Linux套接字與虛擬文件系統(tǒng)(1):初始化和創(chuàng)建(8745)
5.?關于數(shù)據(jù)庫的一些學習研究心得(8148)
6.?使用CString GetBuffer自適應獲取計算機名稱(8009)
7.?使用正則表達式解析URL(7978)
8.?basic_string內(nèi)存泄露問題之分析解決(7786)
9.?Shell應用(4): 使用sed刪除行尾的^M字符(7722)
10.?nginx iocp(1):tcp異步連接(7687)
評論排行榜
1.?basic_string內(nèi)存泄露問題之分析解決(19)
2.?求單向鏈表倒序第m個元素(11)
3.?基于順序存儲實現(xiàn)的多叉樹(1):深度優(yōu)先存儲(9)
4.?字符大小寫轉換(7)
5.?字符串16進制顯示(6)
6.?面向?qū)ο箧i框架的設計與實現(xiàn)(6)
7.?Shell應用(4): 使用sed刪除行尾的^M字符(5)
8.?工作線程與消息循環(huán)(5)
9.?使用正則表達式解析URL(5)
10.?十進制整數(shù)千位分隔符(4)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 春秋十二月
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
欧美亚洲三区
|
香蕉久久夜色精品国产使用方法
|
久久久久国产一区二区
|
国产亚洲精品一区二区
|
欧美一区二区三区四区在线观看地址
|
亚洲深爱激情
|
国产伦理精品不卡
|
久久免费视频网站
|
另类尿喷潮videofree
|
亚洲国产精品尤物yw在线观看
|
欧美成年人网
|
欧美精品色综合
|
亚洲综合成人婷婷小说
|
欧美一区二区三区免费在线看
|
国产偷国产偷亚洲高清97cao
|
久久久综合视频
|
榴莲视频成人在线观看
|
一本色道久久综合亚洲精品不
|
亚洲最新视频在线播放
|
国产精品高清免费在线观看
|
欧美伊人久久久久久久久影院
|
欧美一区三区三区高中清蜜桃
|
亚洲国产精品va在线看黑人动漫
|
欧美日韩在线一区
|
性欧美xxxx视频在线观看
|
久久国产精品黑丝
|
亚洲精选在线观看
|
亚洲欧美国产三级
|
亚洲国产成人在线
|
亚洲视频自拍偷拍
|
在线看欧美视频
|
亚洲视频在线视频
|
亚洲国产91
|
亚洲一区在线看
|
在线观看的日韩av
|
在线亚洲电影
|
亚洲欧洲另类国产综合
|
亚洲欧美福利一区二区
|
亚洲日本中文字幕区
|
亚洲自啪免费
|
在线视频日韩
|
久久综合色婷婷
|
久久精品导航
|
欧美视频在线观看 亚洲欧
|
噜噜噜91成人网
|
国产精品久久久久久久7电影
|
欧美高清视频www夜色资源网
|
国产模特精品视频久久久久
|
亚洲欧洲日韩综合二区
|
国产综合亚洲精品一区二
|
99精品国产在热久久
|
亚洲激情不卡
|
久久久精品动漫
|
欧美一区二区精品久久911
|
欧美高清一区
|
欧美国产在线电影
|
136国产福利精品导航网址应用
|
亚洲午夜精品视频
|
夜夜嗨av一区二区三区
|
欧美成人69av
|
欧美成人久久
|
影音先锋在线一区
|
久久精品国产清自在天天线
|
欧美一区二区三区的
|
国产精品国产三级欧美二区
|
亚洲免费精品
|
在线中文字幕一区
|
欧美日韩精品三区
|
亚洲精品中文字
|
999亚洲国产精
|
欧美黄色aaaa
|
日韩视频永久免费
|
亚洲午夜高清视频
|
国产精品99一区二区
|
99精品国产高清一区二区
|
亚洲一区区二区
|
国产精品国码视频
|
性久久久久久
|
久久一区视频
|
亚洲国产美女
|
欧美日本三区
|
亚洲在线网站
|
久久夜色精品国产欧美乱
|
狠狠色综合播放一区二区
|
久久精品二区
|
亚洲高清二区
|
亚洲欧美日韩一区二区
|
国产伦精品一区二区三区高清
|
亚洲欧美日本国产专区一区
|
午夜在线观看免费一区
|
国产在线观看精品一区二区三区
|
久久国产一区
|
亚洲国内精品
|
欧美亚洲视频
|
亚洲高清色综合
|
欧美日韩免费观看一区二区三区
|
亚洲视频日本
|
久久一二三四
|
在线一区免费观看
|
国内精品嫩模av私拍在线观看
|
久久亚洲视频
|
一本色道久久加勒比精品
|
久久久久久久97
|
aa亚洲婷婷
|
国产视频在线观看一区二区
|
蜜桃av噜噜一区
|
亚洲视频在线观看免费
|
美女成人午夜
|
亚洲欧美日韩综合
|
在线国产亚洲欧美
|
欧美视频一区二区三区四区
|
久久久久久久波多野高潮日日
|
欧美在线免费观看视频
|
韩日精品视频
|
国产精品啊v在线
|
久久嫩草精品久久久精品
|
亚洲桃花岛网站
|
亚洲第一精品夜夜躁人人爽
|
久久国内精品视频
|
99一区二区
|
亚洲二区免费
|
国产一区二区中文
|
国产精品成人播放
|
久久久精品免费视频
|
亚洲神马久久
|
91久久线看在观草草青青
|
老牛国产精品一区的观看方式
|
aa级大片欧美三级
|
91久久精品国产
|
狠狠色丁香久久婷婷综合_中
|
国产精品高潮呻吟久久
|
欧美日韩国产小视频
|
久久久综合网
|
久久久久久69
|
久久大逼视频
|
亚洲欧美日韩系列
|
亚洲午夜激情网页
|
亚洲深夜av
|
一本综合久久
|
99国产精品久久久久老师
|
亚洲国产日韩美
|
亚洲第一精品电影
|
欧美激情国产日韩
|
欧美激情视频一区二区三区在线播放
|
欧美aⅴ99久久黑人专区
|
久久电影一区
|
久久国产加勒比精品无码
|
亚洲综合精品一区二区
|
亚洲影视在线
|
亚洲视频欧美在线
|
亚洲免费视频成人
|
亚洲欧美国产77777
|
久久激五月天综合精品
|
亚洲九九九在线观看
|
亚洲国产精品va
|
亚洲二区免费
|
亚洲精品黄色
|
在线亚洲精品
|
亚洲欧美日韩综合
|
久久国产夜色精品鲁鲁99
|
久久久91精品
|
免费一级欧美片在线观看
|
欧美精品国产
|
国产精品成人一区二区网站软件
|
国产伦精品一区二区三区
|
国产精品久久久久久久久果冻传媒
|
国产精品xxxxx
|
国产日韩一区二区三区
|
一区二区亚洲精品
|
亚洲美女福利视频网站
|
亚洲一区二区欧美
|
久久精品视频在线播放
|
久久综合给合久久狠狠狠97色69
|
欧美wwwwww
|
一区二区三区久久
|
久久九九99视频
|
欧美精品一区二区三区蜜臀
|
国产精品高清免费在线观看
|
国产综合亚洲精品一区二
|
亚洲美女淫视频
|
久久激情网站
|
91久久久在线
|
久久av一区二区三区漫画
|
女生裸体视频一区二区三区
|
国产精品大片
|
亚洲人成77777在线观看网
|
亚洲尤物在线视频观看
|
浪潮色综合久久天堂
|
亚洲免费观看高清在线观看
|
久久精品夜色噜噜亚洲a∨
|
欧美精品福利
|
在线日本成人
|
久久aⅴ国产紧身牛仔裤
|
欧美gay视频激情
|
亚洲性图久久
|
欧美精品综合
|
一区在线播放视频
|
欧美一区二区啪啪
|
夜夜狂射影院欧美极品
|
另类图片综合电影
|