MFC CWinApp启动隐藏会闪一下的问题

在我们使用MFC的时候,在CWinApp初始化里调用m_pMainWnd->ShowWindow(SW_HIDE)来隐藏窗口,会发现程序运行后会先闪一下窗口才隐藏。

主要原因是在CWinApp::ProcessShellCommand函数中,会首先创建窗口,并显示出来。这样在其后调用ShowWindow(SW_HIDE)会闪烁一下。

解决的办法也很简单,我们在CWinApp::ProcessShellCommand函数之前加上“m_nCmdShow = SW_HIDE”即可。

部分代码如下:

     CCommandLineInfo cmdInfo;
	ParseCommandLine(cmdInfo);
	m_nCmdShow = SW_HIDE;
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;
	m_pMainWnd->ShowWindow(SW_HIDE);
	m_pMainWnd->UpdateWindow();

如果我们要进行最大化,最小化,也是一样的。

发表评论

电子邮件地址不会被公开。