青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
一年十二月  誰主春秋
關注:基礎系統(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 春秋十二月
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲欧美日韩精品久久久
|
亚洲黄色性网站
|
亚洲欧美怡红院
|
国产视频久久久久久久
|
久久尤物视频
|
美女视频黄 久久
|
日韩午夜三级在线
|
亚洲午夜日本在线观看
|
国产精品美女久久久久久2018
|
性欧美大战久久久久久久免费观看
|
9国产精品视频
|
国产欧美日韩精品在线
|
美玉足脚交一区二区三区图片
|
欧美电影在线播放
|
亚洲欧美日韩国产综合精品二区
|
欧美一区成人
|
亚洲第一色中文字幕
|
亚洲激情国产
|
国产精品网站在线
|
美女精品在线观看
|
欧美日韩国产经典色站一区二区三区
|
亚洲免费网站
|
久久嫩草精品久久久精品一
|
中国亚洲黄色
|
欧美专区在线
|
一本久道综合久久精品
|
午夜国产不卡在线观看视频
|
亚洲国产成人精品女人久久久
|
一本大道久久a久久精二百
|
国产偷国产偷精品高清尤物
|
欧美丰满高潮xxxx喷水动漫
|
欧美日韩国产综合网
|
久久久精品午夜少妇
|
欧美精品激情在线
|
欧美日韩成人在线播放
|
亚洲国产成人av
|
中文精品视频一区二区在线观看
|
娇妻被交换粗又大又硬视频欧美
|
日韩视频第一页
|
极品av少妇一区二区
|
99精品欧美一区二区三区
|
狠狠色综合一区二区
|
99精品久久
|
亚洲国产91
|
亚洲欧美日本国产有色
|
亚洲精品一二三
|
欧美一级专区免费大片
|
一区二区三区亚洲
|
日韩亚洲欧美一区
|
国产区二精品视
|
最新亚洲视频
|
一区在线免费
|
亚洲欧美在线视频观看
|
日韩一级在线观看
|
久久久国产亚洲精品
|
午夜精品网站
|
欧美另类在线播放
|
久久夜精品va视频免费观看
|
国产精品v一区二区三区
|
亚洲成人中文
|
国产综合久久久久久鬼色
|
一区二区三区欧美日韩
|
亚洲裸体视频
|
久久资源av
|
久久久久久久综合日本
|
国产精品麻豆成人av电影艾秋
|
亚洲高清一区二
|
曰韩精品一区二区
|
午夜精品福利在线
|
亚洲伊人网站
|
欧美激情亚洲精品
|
欧美成人一区二区
|
韩国亚洲精品
|
性高湖久久久久久久久
|
亚洲欧美经典视频
|
欧美激情日韩
|
蜜臀av性久久久久蜜臀aⅴ四虎
|
国产伦精品一区二区三区免费迷
|
亚洲免费成人av电影
|
亚洲人成高清
|
正在播放欧美一区
|
免费黄网站欧美
|
免费成人高清
|
很黄很黄激情成人
|
午夜精品久久久久久久99樱桃
|
亚洲综合成人婷婷小说
|
欧美少妇一区
|
亚洲精品女人
|
在线观看日韩精品
|
久久成人免费网
|
久久久久久久久综合
|
国产色爱av资源综合区
|
亚洲欧美日韩一区二区三区在线
|
一本色道久久综合亚洲精品按摩
|
欧美大片在线观看一区二区
|
欧美成人一区二区在线
|
国产一区二区三区高清
|
香蕉久久a毛片
|
欧美一区二区成人6969
|
国产精品国产成人国产三级
|
一区二区欧美在线观看
|
亚洲深夜影院
|
欧美婷婷在线
|
一区二区三区三区在线
|
亚洲一线二线三线久久久
|
欧美视频免费在线
|
亚洲巨乳在线
|
亚洲一区999
|
国产精品xvideos88
|
亚洲视频二区
|
欧美中文字幕在线播放
|
国产婷婷色一区二区三区
|
欧美一站二站
|
裸体丰满少妇做受久久99精品
|
伊人男人综合视频网
|
乱码第一页成人
|
亚洲国产综合在线
|
中国av一区
|
国产精品成人aaaaa网站
|
亚洲天堂成人
|
久久精品国产2020观看福利
|
国产精品xxxav免费视频
|
亚洲欧美在线一区
|
久久久亚洲人
|
91久久精品美女高潮
|
欧美精品午夜视频
|
中文av字幕一区
|
久久av一区二区三区
|
国产亚洲精品成人av久久ww
|
欧美一区二区黄
|
国产精品久久国产愉拍
|
亚洲激情成人
|
亚洲伊人观看
|
国产亚洲欧美另类中文
|
蜜臀久久99精品久久久画质超高清
|
欧美激情中文字幕在线
|
aaa亚洲精品一二三区
|
国产精品成人免费视频
|
新片速递亚洲合集欧美合集
|
蜜桃久久av一区
|
中文一区在线
|
国产日韩欧美综合一区
|
久久青草欧美一区二区三区
|
亚洲激情电影中文字幕
|
午夜精品久久久久久99热
|
国产精自产拍久久久久久蜜
|
久久九九精品99国产精品
|
亚洲黄网站在线观看
|
欧美亚洲综合久久
|
韩国av一区二区
|
乱码第一页成人
|
亚洲视频在线一区
|
久久资源av
|
一区二区三区av
|
国产日韩欧美在线
|
欧美**字幕
|
亚洲尤物精选
|
可以看av的网站久久看
|
在线视频精品一区
|
国产日韩av高清
|
欧美成人精品h版在线观看
|
99国产精品视频免费观看
|
久久久综合网站
|
一区二区三区国产在线观看
|
国内精品久久久久久久97牛牛
|
欧美精品一区二区高清在线观看
|
性欧美超级视频
|
亚洲经典在线
|
久久aⅴ乱码一区二区三区
|
亚洲精品一二三
|
国际精品欧美精品
|
欧美激情综合亚洲一二区
|
亚洲欧美中文字幕
|
亚洲精品国精品久久99热
|
久久精品成人欧美大片古装
|
一区二区三区四区五区精品
|
狠狠色丁香婷婷综合影院
|
欧美精品1区
|
欧美在线www
|
一区二区三区 在线观看视
|
欧美bbbxxxxx
|
欧美一区二区高清在线观看
|
亚洲精品日韩激情在线电影
|
国产亚洲欧美日韩一区二区
|
欧美色视频在线
|
亚洲手机成人高清视频
|
在线观看亚洲专区
|
国产精品久久一卡二卡
|
欧美电影免费观看大全
|
欧美自拍偷拍
|
亚洲午夜未删减在线观看
|
亚洲第一级黄色片
|
久久夜色精品国产
|
午夜在线a亚洲v天堂网2018
|
亚洲毛片在线观看
|
伊人久久成人
|
国产婷婷色综合av蜜臀av
|
欧美三级视频在线
|
欧美成人午夜77777
|
久久精品日韩
|