,,自己简单封装的一个CDialog类实例

,,自己简单封装的一个CDialog类实例

这篇文章主要介绍了自己简单封装的一个cddialog(对话方块)类,实例分析了自定义封装cddialog(对话方块)类的相关技巧,比较简单易懂,需要的朋友可以参考下

本文实例讲述了自己简单封装的一个cddialog(对话方块)类实例。分享给大家供大家参考。具体如下:

该代码比较短小,实现了消息映射。

对话框h。头文件如下:

#包括windows.h

类激光唱片对话框

{

观众:

//一条消息所包含的信息

结构图(结构图)

{

uint消息

bool (*pf)(HWND hwndDlg、uint umsg、WPARAM wParam、lparam lparam

内部低输入联网(low-entry networking的缩写)

map * pnext

}:

观众:

字m _ wres//对话框资源的身份证明号

//头~我爱你~尾指针,用来操作消息列表

静态贴图* m _ phead

地图* m _ pend

观众:

弯曲件展示(hinstance,hwnd);

请参阅add msg(bool(* FP)(hwnddlg,uint umsg,WPARAM wParam,LPARAM),uint);

静态bool OnClose(HWND hwndDlg、uint umsg、WPARAM wParam、LPAR am);

静态布林值(hwnd hwnddlg、uint umsg、WPARAM wParam、lparam lparam

CD dialog();

私人的:

静态整数指针回调对话框处理器(HWND hwndDlg、uint umsg、WPARAM wParam、LPAR am);

void初始化映射();

}:

int WINAPI WinMain(HINSTANCE,hinstance hprevinstance,LPSTR lpCmdLine,int ncmdshow);

对话.卡片打印处理机(Card Print Processor的缩写)源文件如下:

#包括" Dialog.h "

cdialog * pt this//保存基类指针

CD dialog:map * CD dialog:m _ phead=null;

//窗口过程函数

int _ ptr CD dialog:dialog proc(hwnddlg、uint umsg、WPARAM wParam、LPARAM)

{

//遍历消息列表以查找是否有相应的响应函数

CD dialog:map * ptmp=m _ phead;

for(int I=1);S7-1200可编程控制器:(一)

{

if(umg==ptmp-msg)

{

ptmp-pf(hwnddlg、umg、wParam、lparam

返回错误的

}

ptmp=ptmp-pnext;

}

返回错误的

}

//创建消息列表

请参阅cddialog:初始化映射()

{

m_pHead=新贴图:

S7-1200可编程控制器:

m _ phead-msg=WM _ close;

m_pHead-pf=无糖;

MAP *pNew=新地图;

pnew-msg=WM _ init对话框;

pNew-pf=肌钙蛋白;

pnew-pnext=null;

m _ phead-pnext=pnew;

m _ pend=pnew

}

//消息响应函数

bool CD dialog:on clos(hwnd hwnddlg、uint umsg、WPARAM wParam、LPARAM)

{

结束对话(hwndDlg,0);

返回真实的

}

cddialog:cddialog()

{

init map();

}

//程序入口函数

int winapi winmain(hin instance,hinstance hprevinstance,LPSTR lpCmdLine,int nCmdShow)

{

pt this节目(0,0);

返回0;

}

//显示对话方块

bool CD dialog:show(hintance hins,HWND hParent)

{

DialogBox(hIns,make intruser ce(m _ wres),hParent,dialog proc);

返回真实的

}

//由子类重写此函数以在对话框初始化时进行一些操作

bool CD dialog:on init(hwnd hwnddlg,uint umsg,WPARAM wParam,LPARAM)

{

返回真实的

}

//向消息列表中增加消息

见CD dialog:addmsg(bool(* FP)(hwnd hwnddlg,uint rsg,WPARAM wParam,LPARAM),uint rsg)

{

MAP *pNew=新地图;

pnew-msg=umg;

pnew pf=FP

pnew-pnext=null;

m _ pend-pnext=pnew;

m _ pend=pnew

-伊甸园字幕组=-翻译:

}

使用时,只需要把这2个文件包含进去,用资源编辑器创建一个对话,然后再自己写一个类,继承我的cddialog(对话方块)类,把m_wRes(消歧义)这个成员变更设为你创建的对话方块的身份证明号,再外部的一个全局变量m _ pThis(消歧义)并把这一点指针赋给它就可以了。

要增加消息响应函数的话,只要在你的类的构造函数里调用AddMsg()这个函数,然后再写你的消息响应函数就好了。

AddMsg文件有两个参数,第一个参数是你的消息响应函数名,第二个参数是你要响应的消息。

示例如下:

#包括MyDlg.h '

#包括资源. h

//定义一个指向cddialog(对话方块)的指针并在下面的构造函数中赋值为这一点

外部cdialog *这

MyDlg应用程序;

MyDlg:MyDlg()

{

m_wRes=IDD_DIALOG1:

pThis=此;

添加消息(onccommand,WM_COMMAND):

}

//WM_COMMAND消息响应函数

bool mydlg:oncommand(hwnd hwnddlg、uint umsg、WPARAM wParam、LPARAM)

{

邮箱(hwndDlg,""、" 0 ";

返回真实的

}

//WM _ init dialog-WM _ init对话方块消息响应函数

bool mydlg:oninitit(hwnddlg,uint umsg,WPARAM wParam,LPARAM)

{

邮箱(hwndDlg,""、" 0 ";

返回true

}

希望本文对大家基于MFC设计win32程序有所帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: