我正在使用传统的MFC(VC 6)应用程序,需要将其修改为在启动时在屏幕上垂直和水平居中。我已尝试在主框架OnCreate调用中使用对CenterWindow的调用,但这似乎没有做任何事情。任何帮助将不胜感激。
答案 0 :(得分:1)
m_pMainWnd-> InitInstance()上的CenterWindow()?
答案 1 :(得分:0)
left =(ScreenWidth-WindowWidth)/ 2 top =(ScreenHeight-WIndowHeight)/ 2
答案 2 :(得分:0)
我有一个MDI应用程序,它在Application类的InitInstance中启动时进行定位。 (我记得已经读过,主框架的OnCreate确实是错误的地方,但我不知道在哪里读了......很久以前)我试图在这里删除相关部分:
BOOL CMyApp::InitInstance()
{
// stuff...
CMyMainFrame* pMyMainFrame=CreateMainFrame();
if (!pMyMainFrame)
return FALSE;
m_pMainWnd = pMyMainFrame;
// stuff...
if (!ProcessShellCommand(cmdInfo))
return FALSE;
int nCmdShow=SW_NORMAL;
UINT flags=WPF_SETMINPOSITION;
WINDOWPLACEMENT aWndPlacement;
CRect rect;
// determine the desired rect of the application window
aWndPlacement.length=sizeof(WINDOWPLACEMENT);
aWndPlacement.showCmd=nCmdShow;
aWndPlacement.flags=flags;
aWndPlacement.ptMinPosition=CPoint(0,0);
aWndPlacement.ptMaxPosition=CPoint(-::GetSystemMetrics(SM_CXBORDER),
-::GetSystemMetrics(SM_CYBORDER));
aWndPlacement.rcNormalPosition=rect;
m_pMainWnd->SetWindowPlacement(&aWndPlacement);
m_nCmdShow=nCmdShow;
pMyMainFrame->ShowWindow(m_nCmdShow);
pMyMainFrame->UpdateWindow();
return TRUE;
}
我希望这适合你。