客户区窗口切分不平均问题 本帖最后由 thisismyway 于 2012-09-03 15:24:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 窗口最大化是在CXXApp中的InitInstance中完成的:m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);但在调用m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED)完成最大化之前,调用了OnCreateClient进行窗口的分割,此时的窗口并不是最大化后的窗口。你分别设一个断点,跟踪一下就知道了。 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.style&=~WS_EX_CLIENTEDGE; CRect rect; rect.SetRect(0,0,::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN)); AdjustWindowRectEx(&rect, cs.style, TRUE,cs.dwExStyle); cs.cx = ::GetSystemMetrics(SM_CXSCREEN); cs.cy = ::GetSystemMetrics(SM_CYSCREEN); CString cstr; cstr.Format("%d,%d,%d,%d\n",cs.cy,cs.cx,cs.y,cs.x); TRACE(cstr);//TRACE信息输出 return TRUE;}本人在PreCreateWindow中写了上述函数,发现程序运行(以最大化窗口运行)后获取窗口客户区大小为1260*750),略小于本人显示屏的大小(1280*800),但点击还原窗口按钮后,窗口上下已延伸到Window任务栏,窗口大小变为1280*800。上述代码Trace信息输出为800,1280,0,0。求解为何? 试试#define SM_CXVSCROLL 2#define SM_CYHSCROLL 3 CptrArray 类的使用 InternetSetOption 如何在MFC中实现代理 问一个弱弱的问题 求助CEdit 字体旋转的问题 为什么这段代码老是报错啊? 哪儿错了 请教两条sql语句的意义! 为什么在基于对话框的程序的C*Dlg 中不能定义CDatabase m_database? 可以用软件实现关闭双显示器中的一个吗? CTime 的构造问题 乖乖的问题! c++写的dll调用,外部应用的回调方法,怎么实现?郁闷 vs2008侧边出现的蓝色勾,是什么?怎么消除
但在调用m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED)完成最大化之前,调用了OnCreateClient进行窗口的分割,此时的窗口并不是最大化后的窗口。你分别设一个断点,跟踪一下就知道了。
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.style&=~WS_EX_CLIENTEDGE;
CRect rect;
rect.SetRect(0,0,::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN));
AdjustWindowRectEx(&rect, cs.style, TRUE,cs.dwExStyle);
cs.cx = ::GetSystemMetrics(SM_CXSCREEN);
cs.cy = ::GetSystemMetrics(SM_CYSCREEN);
CString cstr;
cstr.Format("%d,%d,%d,%d\n",cs.cy,cs.cx,cs.y,cs.x);
TRACE(cstr);//TRACE信息输出
return TRUE;
}
本人在PreCreateWindow中写了上述函数,发现程序运行(以最大化窗口运行)后获取窗口客户区大小为1260*750),略小于本人显示屏的大小(1280*800),但点击还原窗口按钮后,窗口上下已延伸到Window任务栏,窗口大小变为1280*800。上述代码Trace信息输出为800,1280,0,0。求解为何?
#define SM_CXVSCROLL 2
#define SM_CYHSCROLL 3