想让对话框程序隐藏启动,然后需要时又可以显示。
刚开始我也想到在OnInitDialog()中加上ShowWindow(SW_HIDE),其实这样是不行的,不信自己去试验
找了网上的方法,都没有满足我的要求,自己总结了一个比较满意的方法。
定义一个bool b_show;//决定是否隐藏
b_show=false;//默认隐藏
可以在对话框中重载虚函数DefWindowProc()。
LRESULT CTest2Dlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message==WM_NCPAINT )
{
if(b_show==false)
ShowWindow(SW_HIDE);
else
ShowWindow(SW_SHOW);
}
return CDialog::DefWindowProc(message, wParam, lParam);
}
LRESULT CTest2Dlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message==WM_NCPAINT )
{
if(b_show==false)
ShowWindow(SW_HIDE);
else
ShowWindow(SW_SHOW);
}
return CDialog::DefWindowProc(message, wParam, lParam);
}
程序中想还原显示的时候可以
b_show=true;this->ShowWindow(SW_SHOW);