关于网友提出的“ 如何才能让主窗体最小化时,子窗体不最小化”问题疑问,本网通过在网上对“ 如何才能让主窗体最小化时,子窗体不最小化”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 如何才能让主窗体最小化时,子窗体不最小化
描述: 如何才能让主窗体最小化时,子窗体不最小化,还能正常显示,请高手指教
解决方案1: 在MDI中不大可能做到。一般情况下你应该是另外的一个单独的窗口,而不是子窗口。
解决方案2: 支持
一楼的想法可以
解决方案3: 跟进。。。。。。
---------------
估计截系统消息可以做到
解决方案4: 重载Createparams,改变窗体风格,设置父句柄为桌面,代码大概如下:
private
procedure Createparams(var params: TCreateParams);override;
procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD);
end;
end;
解决方案5: 这样可以,我试过
http://community.csdn.net/Expert/topic/4896/4896453.xml?temp=.6527979
解决方案6: 学习啊
解决方案7: 学习学习
解决方案8: 学习了
解决方案9: TForm1是表示子窗口吧?
ShowWindow(Handle, SW_MINIMIZE)是不是应该改成ShowWindow(Handle, SW_SHOWNORMAL)啊?
反正我是没有试过的。
解决方案10: >>如何才能让主窗体最小化时,子窗体不最小化,还能正常显示,请高手指教
如果是MDI的情况下,MainForm都最小化了,ChildForm,自然也跟着最小化了
ChildForm不就是显示在MainForm的客户区吗?
解决方案11: 首先楼主要明白Delphi当中Application的机制.首先Application会截掉部分主窗体的信息,而此时如果发送到主窗体一个最小化的消息,则Application会进行处理,而并不是主窗体自己处理,所以当你把主窗体的消息拦截掉不传递给Application的话,它就不知道这个消息,此时你直接把主窗体最小化就不会影响到其它窗体.
解决方案12: private
{ Private declarations }
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
public
//...
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
with Message do
begin
if CmdType and $FFF0 = SC_MINIMIZE then
ShowWindow(Handle, SW_MINIMIZE)
else inherited;
end;
end;
以上介绍了“ 如何才能让主窗体最小化时,子窗体不最小化”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2364878.html