对话框程序, 在 OnInitDialog的最后 showWindow(SW_HIDE),不管用的原因
2014-03-21 09:59
411 查看
我研究过,原因及隐藏方法 .
MFC对话框应用程序启动时在OnInitDialog()之后会显示对话框的原因如下
MLF_SHOWONIDLE标志
int CDialog::DoModal()
// enter modal loop
DWORD dwFlags = MLF_SHOWONIDLE;
if (GetStyle() & DS_NOIDLEMSG)
dwFlags |= MLF_NOIDLEMSG;
int CWnd::RunModalLoop(DWORD dwFlags)
BOOL bShowIdle = (dwFlags & MLF_SHOWONIDLE) && !(GetStyle() & WS_VISIBLE);
// show the dialog when the message queue goes idle
if (bShowIdle)
{
ShowWindow(SW_SHOWNORMAL);
UpdateWindow();
bShowIdle = FALSE;
}
MFC对话框应用程序启动时隐藏的方法
1 取消对话框的WS_VISIBLE属性
2 重载WM_ERASEBKGND消息 首次调用此函数进行忽略即可
BOOL CxxxDlg::OnEraseBkgnd(CDC* pDC)
{
static bool bFirst=true;
if(bFirst)
{
bFirst=false;
ShowWindow(SW_HIDE);
return TRUE;
}
return CDialog::OnEraseBkgnd(pDC);
}
MFC对话框应用程序启动时在OnInitDialog()之后会显示对话框的原因如下
MLF_SHOWONIDLE标志
int CDialog::DoModal()
// enter modal loop
DWORD dwFlags = MLF_SHOWONIDLE;
if (GetStyle() & DS_NOIDLEMSG)
dwFlags |= MLF_NOIDLEMSG;
int CWnd::RunModalLoop(DWORD dwFlags)
BOOL bShowIdle = (dwFlags & MLF_SHOWONIDLE) && !(GetStyle() & WS_VISIBLE);
// show the dialog when the message queue goes idle
if (bShowIdle)
{
ShowWindow(SW_SHOWNORMAL);
UpdateWindow();
bShowIdle = FALSE;
}
MFC对话框应用程序启动时隐藏的方法
1 取消对话框的WS_VISIBLE属性
2 重载WM_ERASEBKGND消息 首次调用此函数进行忽略即可
BOOL CxxxDlg::OnEraseBkgnd(CDC* pDC)
{
static bool bFirst=true;
if(bFirst)
{
bFirst=false;
ShowWindow(SW_HIDE);
return TRUE;
}
return CDialog::OnEraseBkgnd(pDC);
}
相关文章推荐
- 对话框程序, 在 OnInitDialog的最后 showWindow(SW_HIDE),不管用的原因
- 关于对话框应用程序OnInitDialog()的调用
- VC++ 6.0中对话框的OnInitDialog()
- 如果重写对话框的OnInitDialog()函数,如何保证DoDataExchange(CDataExchange* pDX)依然有效?
- OnInitDialog()和对话框的构造函数的区别
- 对话框函数CDialog::OnInitDialog()
- OnInitDialog中ShowWindow为什么无效?
- MFC中对话框中OnInitDialog()和OnCreate()的区别
- MFC中OnInitDialog()函数的使用和使用SetWindowText()修改对话框的名称
- 怎样为MFC对话框建立初始化函数BOOL HistoryData::OnInitDialog()
- vs2008给子对话框添加初始化函数OnInitDialog()函数
- MFC---一个对话框,初始时没有OnInitDialog()函数,我们如何初始化其数据成员及函数
- MFC_为MFC对话框建立初始化函数BOOL HistoryData::OnInitDialog()
- 解决 mfc OninitDialog里面隐藏对话框的方法
- 求助:对话框下OnInitDialog中使用SetTimer无效
- 对话框程序SW_HIDE 和 SW_MINIMIZE 区别
- 一个对话框,初始时没有OnInitDialog()函数,我们如何初始化其数据成员及函数
- 如何重载MFC对话框的OnInitDialog()函数
- vc6的OnInitDialog函数中直接退出(转)
- 基于MFC的对话框Dialog的OpenGL程序框架