现程序需要启动时最小化到系统托盘并在任务栏中隐藏起来,在托盘中点击菜单选 项,对话框进行显示出来,原以为很简单的一个功能,结果却费了一些时间
1 设置一个变量 m_bShow
2 在OnInitDialog()中初始化m_bShow=FALSE
3 重载对话框DefWindowProc ()函数
LRESULT CTestDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
if(message==133 )
{
if(m_bShow==FALSE)
ShowWindow(SW_HIDE);
else
ShowWindow(SW_SHOW);
}
return CDialog::DefWindowProc(message, wParam, lParam);
}
4 到这里便可以实现启动时隐藏对话框,但在显示对话框事件中
只进行m_bShow=true,会出现显示时有时间上延迟,因此还需ShowWindow(SW_SHOW),这样便完美了。
///追加于 2012-09-08
此方法在显示对话框时,将
m_bShow=true;
ShowWindow(SW_SHOW);
加入到托盘右键菜单中执行,未对双击左键显示进行分析,有需要的自行研究