hur.cn - 华软网

 热门搜索

窗口在初始化时的最大化问题

  作者:未知    来源:网络    更新时间:2011/1/10
如题,建立一个单文档的应用程序,在初始化时实现最大化,如果调用ShowWindow(SW_SHOWMAXIMIZED),显示时窗口的最下方会被任务栏盖住,而且此时窗口也能够移动,讨教一下,如何实现初始化后,窗口的显示是好比点击了右上角最大化按钮后的那种显示效果
---华软 网友回答---
C++">
// 主框架类中

PostMessage(WM_SYSCOMMAND, SC_MAXIMIZE, 0);

---华软网友回复---
很奇特,发现原来是由于我把最大化和最小化屏障掉后才会出现这类情况,如果不屏障最大化按钮,如上所做就能实现,什么原因酿成的
---华软网友回复---
C++">
在应用程序类(CxxAPP)的 InitInstance 函数中设定 m_nCmdShow的取值.
m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
例:
BOOL CMyEditApp::InitInstance()
{
AfxEnableControlContainer();
m_nCmdShow=SW_SHOWMAXIMIZED; //最大化
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.

#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

…………
}

---华软网友回复---
欠好意思哈,我原先没有表述清楚,是在屏障掉了右上角的最大化按钮后,如果再调用ShowWindow(SW_SHOWMAXIMIZED)的话就会出现窗口铺满整个屏幕的效果,而不是最大化的效果,如果不屏障掉最大化按钮,就不会出现上述情况,现在还没有找出原因,有高手知道吗
---华软网友回复---
自己措置惩罚最大化
http://topic.csdn.net/t/20050710/19/4135232.html
---华软网友回复---
你是如何屏障了最大化按钮的?
---华软网友回复---
引用 4 楼 dmjh1025 的回复:
欠好意思哈,我原先没有表述清楚,是在屏障掉了右上角的最大化按钮后,如果再调用ShowWindow(SW_SHOWMAXIMIZED)的话就会出现窗口铺满整个屏幕的效果,而不是最大化的效果,如果不屏障掉最大化按钮,就不会出现上述情况,现在还没有找出原因,有高手知道吗
是有这个问题
没有特别好的解决方案
不过我记得屏障最大化按钮不用屏障最大化消息
也就是能够设置WS_MAXSIZEBOX气概
---华软网友回复---
引用 5 楼 varding 的回复:
自己措置惩罚最大化
http://topic.csdn.net/t/20050710/19/4135232.html

cs.style = cs.style&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX;
运用这句话后在设置WS_MAXSIZEBOX就会出现全屏的显示,而不是最大化
已经基本上解决了,原因我想照旧和题目栏的最大化消息有关,尝试自己措置惩罚一下最大化消息      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。