MFC 对话框最小化与还原

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 对话框最小化与还原相关的知识,希望对你有一定的参考价值。

我想用对话框实现一个屏幕取点的功能,从菜单上选择该项后弹出一个对话框(IDD_DIALOG1),点击该对话框上一按钮(IDC_POINT1)后,该对话框自动最小化,同时调用选点的处理函数,按下鼠标左键后该对话框还原,并返回刚才选定的点。这个对话框最小化与还原怎么实现?我用的ShowWindow(SW_MINIMIZE)。在OnPoint1()直接调用时主函数的对话框最小化了。 而用GetDlgItem(IDD_DIALOG1)->ShowWindow(SW_MINIMIZE)就报错。怎么办?是不是这个对话框类型不对?我是从resources中直接insert dialog,这种对话框是不是不支持最小化。。。
怎么创建阿?请教。。。

ptest.Creat() 报错阿。没有Creat只有个Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );不知道怎么用

参考技术A GetDlgItem(IDD_DIALOG1)->变成
((类型*)GetDlgItem(IDD_DIALOG1))->
这样应该就行了。本回答被提问者采纳
参考技术B 你的子对话框如果是模态对话框好像这样是不行的,自己创建一个非模态对话框试试看

从resources中直接insert dialog,为这个对话框创建一个类,假定叫Ctest,那么你定义一个Ctest类的指针ptest,使用下面的方法显示对话框:
ptest = new Ctest
ptest->Creat()
ptest->ShowWindow(1);
这样就能显示一个非模态对话框

用->方式
参考技术C GetDlgItem=Get Dialog's Item
得到对话框上的控件 如按钮,编辑框等 当然不能得到对话框本身.

以上是关于MFC 对话框最小化与还原的主要内容,如果未能解决你的问题,请参考以下文章

在MFC中,我去掉最大化和最小化了,当我想让它们仍然显示出来(灰显)只是不可用

mfc单文档如何去掉最小化 还原

MFC/VC 在多文档MDI程序中 子窗口初始最大化显示 如何去掉菜单栏右侧的最小化及向下还原按钮

MFC 对话框编辑器中的最小化/最大化框灰显

MFC对话框程序一运行直接最小化显示怎么办

在MFC生产的基本对话框界面中,只有关闭按钮,没有最大最小化按钮,如何给它添加一个最小化按钮?