sendmessage最大化窗口后,该窗口最小化按钮失灵 delphi

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sendmessage最大化窗口后,该窗口最小化按钮失灵 delphi相关的知识,希望对你有一定的参考价值。

对另一窗口操作
ShowWindow(Handle,SW_SHOWMAXIMIZED);
或者
ShowWindow(Handle, SW_RESTORE);
SendMessage(Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
都有相同的问题
最小化按钮可以按下,但没有响应
早就解决了,前阵子百度知道没有“暂无满意回答”的选项,所以现在才来处理。附上问题原因,以防他人再掉坑里:delphi的工程有个隐藏窗体application,对当前窗体发SW_RESTORE后也需要对application发,仅此而已。

参考技术A ShowWindow(Handle,SW_SHOWNORMAL);追问

重申下,我 需 要 它MAXIMIZE。只是想解决上述问题

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
得到对话框上的控件 如按钮,编辑框等 当然不能得到对话框本身.

以上是关于sendmessage最大化窗口后,该窗口最小化按钮失灵 delphi的主要内容,如果未能解决你的问题,请参考以下文章

Windows10运行软件后,窗口不显示的解决办法

电脑上不管开啥窗口最小化,关闭都会卡在屏幕上。

delphi中SendMessage使用说明

MFC 对话框最小化与还原

如何最大化分割窗口?

在c++中窗口最大化、最小化、关闭的程序代码是啥?