请问MFC如何创建对话框?

请问MFC如何创建对话框?,第1张

创建对话框
===============================
在资源里先添加一个对话框资源;
然后用类向导给它对应一个类,在这个类里添加对话框需要的 *** 作函数

因为这个太简单了,呵呵。
涉及3个步骤:
1·对话框实例化。双击资源中的对话框,实现一个带有H CPP的对话框类
2·菜单资源中使用classwizard,实现菜单消息响应函数(对应ID的工具条按钮和快捷键也会同样响应),需要注意的如果是MDI多文档,有无文档的菜单是两个,响应函数也是2个。
3·在菜单响应函数中:
CXXXDialog dlg;
dlgDoModal();
注意响应函数所在CPP头部要包含对话框类的H文件。

1 EndDialog()是CDialog中的一个成员函数,OnOK其实最后也是调用了它,而在EndDialog()这个函数中,MFC又调用了WIN API中的全局函数::EndDialog(m_hWnd, ONOK)。
2 其实这个比较生僻的地方。我们知道MFC是封装了WINDOWS API的,其实CDialog这个类并没有能力自己去创建一个窗口,而必须通过调用API去创建然后把它的句柄保存起来,以备管理。从而当一个CDialog所管理的窗口被关闭之后,CDialog本身依然存在,只不过它引用的句柄已经失效了。而我们知道DoModal这个函数是用来创建并关联窗口的,所以你说的情况不会存在。

vc6下MFC通过点击菜单项d出对话框: 1、新建MFC工程,在资源中新建一个对话框,右击建立类向导,为对话框新建一个类 2、在view类中建立点击菜单项的响应函数 3、在响应函数中建立对话框的对象,调用DoModal函数d出对话框 view类cpp中要include对话框类的头文件 不会的话,联系我qq:342135961,我发给你代码 建议你看孙鑫的MFC视频,入手很快

这里有个笨办法,不过基本上可以实现导入其他项目对话框(写得很繁琐,不过只要做过一遍基本上就可以记住所有步骤了,因为其原理比较简单)。前提:1已经做好的那个对话框不是新建立工程时默认提供的对话框(也就是说需要自己新建一个对话框来实现你要的功能,我这个方法如果导入默认提供的对话框的话会出错,具体原因我也正在探索)2对话框、空间的ID要自己取(我不知道在MFC里子对话框的控件ID会不会和主对话框冲突,我没试过,但是要开发软件的话,这种约定俗成的东西也不用我多说了吧)3确定即将导入的对话框的ID和工程里resourceh里定义的宏、还有待导入对话框头文件里的对话框数据(就是enum { IDD = }这个东西)要保持一致,不然可能d不出指定对话框。步骤:1导入对话框的头文件和源文件,以及该对话框所涉及到的所有文件(比如bmp等);2如果有涉及其他文件,可能需要重新修改这些文件的ID(感觉相当麻烦),如果没有则可略过此步;3在导入对话框的源文件里,将其include的应用类头文件更改为当前工程的应用类头文件(如果略过此步进行编译的话,VS平台也会在此提示找不到头文件)4可以用记事本打开resourceh文件,在此定义对话框的相应对话框和控件的ID,注意其值不能重复,最好是在导入对话框的工程里找到对应的值拷贝过来,然后再适当修改。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12580178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存