MFC单文档窗体,如何设置窗体启动的初始位置,
比如,设置启动时窗体位于屏幕中间,或者左上角,右上角,随机。
MainFrm.cpp文件的BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中设置
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
………………
//设置高、宽 (屏幕分辨率的3/4)
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) * 3 / 4;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) * 3 / 4;
//设置窗口位置 (居中)
cs.y = (cs.cy*4/3 - cs.cy) / 2;
cs.x = (cs.cx*4/3 - cs.cx) / 2;
// (右上)
//cs.y = 0;
//cs.x = ::GetSystemMetrics(SM_CXSCREEN) - cs.cx;
// (左上)
//cs.y = 0;
//cs.x = 0;
return TRUE;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
………………
//设置高、宽 (屏幕分辨率的3/4)
cs.cy = ::GetSystemMetrics(SM_CYSCREEN) * 3 / 4;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN) * 3 / 4;
//设置窗口位置 (居中)
cs.y = (cs.cy*4/3 - cs.cy) / 2;
cs.x = (cs.cx*4/3 - cs.cx) / 2;
// (右上)
//cs.y = 0;
//cs.x = ::GetSystemMetrics(SM_CXSCREEN) - cs.cx;
// (左上)
//cs.y = 0;
//cs.x = 0;
return TRUE;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-05-22
在CMainFrame的OnCreate里边加上
SetWindowPos(NULL,0,0,500,500,NULL);
其中,0,0是窗口左上角的位置,500,500是窗体右下角的左边。
你要想弄到其他位置可以更改这两个参数实现。
SetWindowPos(NULL,0,0,500,500,NULL);
其中,0,0是窗口左上角的位置,500,500是窗体右下角的左边。
你要想弄到其他位置可以更改这两个参数实现。
第2个回答 2010-05-26
MFC提供了标准的处理方法,如下:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style&=~(LONG)FWS_ADDTOTITLE;
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by
cs.x=0;
cs.y=0;
cs.cx=1024;
cs.cy=760;
//cs.style |=WS_MAXIMIZE; //用这句可以最大化
return TRUE;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style&=~(LONG)FWS_ADDTOTITLE;
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by
cs.x=0;
cs.y=0;
cs.cx=1024;
cs.cy=760;
//cs.style |=WS_MAXIMIZE; //用这句可以最大化
return TRUE;
}