怎样让Dialog based程序启动时就隐藏 怎样让Dialog based程序启动时就隐藏ShowWindow(SW_HIDE );或AfxGetApp()->m_nCmdShow=SW_HIDE;好象都不行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 m_bShow=TRUE;CDlg::OnPaint(){ if(m_bShow) { ShowWindow(SW_HIDE); m_bShow=FALSE; } .........} m_bShow=TRUE;CDlg::OnPaint(){ if(m_bShow) { ShowWindow(SW_HIDE); m_bShow=FALSE; } .........}还是不行 ///////////////////////////////////////////////////////////////////////////////////hide dialog at startup/////////////////////////////////////////////////////////////////////////////////void CHidedlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) { if (lpwndpos->flags & SWP_SHOWWINDOW) { lpwndpos->flags &= ~SWP_SHOWWINDOW; PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos); ShowWindow(SW_HIDE); } else CDialog::OnWindowPosChanging(lpwndpos); }//通过重载DoModel、RunModelLoop可以解决问题 窗口设为不可见风格.需要显示的时候在设置为可见的.或者在Oninitdlg中用ShowWindow(SW_HIDE); 设个定时器OnInitDialog() { CDialog::OnInitDialog(); m_nTimer=SetTimer(1,500,0); return TRUE;}OnTimer(UINT nIDEvent) { ShowWindow(SW_HIDE); KillTimer(m_nTimer); CDialog::OnTimer(nIDEvent);}这样一定行,我就这么做的 BOOL CTestApp::InitInstance(){ // Standard initialization // Standard initialization CTestDlg* pdlg = new CTestDlg; m_pMainWnd = pdlg; pdlg->Create(pdlg->IDD,NULL); pdlg->ShowWindow(SW_SHOW); return TRUE;}CTestDlg::PostNcDestroy(){CDialog::PostNcDestroy();delete this;} 楼上代码什么意思?可否解释一下CTestDlg::PostNcDestroy()? 在窗口销毁时删除这个对象. 因为这个对象是NEW出来的. MFC调试出现这个问题,怎么破 程序运行一次后就出错,这是什么原因? 问个消息路由、动态创建的几个概念 关于解析XML文件 CInternetsession 获取网页内容 (脚本运行所获得) 如何在公交换乘找出换乘路线 在listctrl的子类中怎么改变每一行的高度?? 高分求拔号程序 请问Win32 API中有没有函数可以直接画正弦曲线? 大家都在用哪些VC的辅助工具? UP无分,重复无分,灌水无分(除非你是高手) 偶在沈阳~谁招待我一下~好无聊一个人…… 放分:哪位大哥能给我一个在CListView中每插入一列时可设定每列背景颜色的类代码???????
{
if(m_bShow)
{
ShowWindow(SW_HIDE);
m_bShow=FALSE;
}
.........
}
{
if(m_bShow)
{
ShowWindow(SW_HIDE);
m_bShow=FALSE;
}
.........
}
还是不行
//hide dialog at startup
/////////////////////////////////////////////////////////////////////////////////
void CHidedlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
if (lpwndpos->flags & SWP_SHOWWINDOW) {
lpwndpos->flags &= ~SWP_SHOWWINDOW;
PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos);
ShowWindow(SW_HIDE);
}
else
CDialog::OnWindowPosChanging(lpwndpos);
}
//通过重载DoModel、RunModelLoop可以解决问题
需要显示的时候在设置为可见的.
或者在Oninitdlg中用ShowWindow(SW_HIDE);
OnInitDialog()
{
CDialog::OnInitDialog();
m_nTimer=SetTimer(1,500,0);
return TRUE;
}
OnTimer(UINT nIDEvent)
{
ShowWindow(SW_HIDE); KillTimer(m_nTimer);
CDialog::OnTimer(nIDEvent);
}
这样一定行,我就这么做的
{
// Standard initialization
// Standard initialization CTestDlg* pdlg = new CTestDlg;
m_pMainWnd = pdlg;
pdlg->Create(pdlg->IDD,NULL);
pdlg->ShowWindow(SW_SHOW);
return TRUE;
}CTestDlg::PostNcDestroy()
{
CDialog::PostNcDestroy();
delete this;
}