MFC,基于单文档的构架,初始化时隐藏主窗口发生闪烁如何解决?

Yusuf_uestc 2015-09-15 08:01:51
//CETSPApp::InitInstance()中部分代码如下:
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CETSPDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CETSPView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
//---------显示指定对话框--------
CETSPTESTDlg* pETSPTESTDlg;
pETSPTESTDlg = new CETSPTESTDlg();
if (pETSPTESTDlg != NULL)
{
BOOL ret = pETSPTESTDlg->Create(IDD_ETSPTEST_Dlg, NULL);
if (!ret)
{
AfxMessageBox(_T("对话框创建失败!"));
}
pETSPTESTDlg->ShowWindow(SW_SHOW);
}
else
{
AfxMessageBox(_T("创建错误!"));
}
//---------显示指定对话框--------

CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);


if (!ProcessShellCommand(cmdInfo))
return FALSE;

//隐藏主窗口
m_pMainWnd->ShowWindow(SW_HIDE);
m_pMainWnd->UpdateWindow();


return TRUE;


//框架类中重载如下:
void CMainFrame::ActivateFrame(int nCmdShow)
{
// TODO: Add your specialized code here and/or call the base class
nCmdShow= SW_HIDE;
CFrameWndEx::ActivateFrame(nCmdShow);
}
...全文
113 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨笨仔 2015-09-16
  • 打赏
  • 举报
回复
在主框架App程序中有一段主窗口显示指令

	// 唯一的一个窗口已初始化,因此显示它并对其进行更新
	m_pMainWnd->ShowWindow(SW_SHOW);
	m_pMainWnd->UpdateWindow();
你直接禁用它不就行了?
信阳毛尖 2015-09-16
  • 打赏
  • 举报
回复
m_pMainWnd->ShowWindow(SW_HIDE); m_pMainWnd->UpdateWindow(); ------------------------------------------------------------- 我奇怪的是,m_pMainWnd你new出来了吗?窗口你创建出来了吗?好像没有吧?可为什么这两句没有崩掉呢?迷惑中
Yusuf_uestc 2015-09-16
  • 打赏
  • 举报
回复
感谢楼上两位的回答,摸索了半天,问题已解决了。方法如下: 1) 在应用程序构造函数CxxxApp::CxxxApp(){}中添加代码: EnableLoadWindowPlacement(FALSE); 2) 应用程序初始化CETSPApp::InitInstance()中设置: m_pMainWnd->ShowWindow(SW_SHOW);替换为m_pMainWnd->ShowWindow(SW_HIDE); 3) 重载CMainFrame的ActivateFrame函数,在函数体中添加语句: nCmdShow = SW_HIDE;

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧