隐藏显示在任务栏中的对话框程序
2008-01-16 21:49
323 查看
上次正好要做一个类似只有菜单一样的程序,当然需要把显示在任务栏上的隐藏起来。
查了下资料,下面三步,用的别人的话
第一、创建对话框时必须将它作为某个不可见框架窗口的子窗口;
第二、这个不可见窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;
第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW;
我总结出有两部就ok。
代码如下:
BOOL CSSO_AGentApp::InitInstance()
...{
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
SetRegistryKey(_T("SSO AGent"));
//创建对话框时,把它作为不可见主框架窗口的子窗口对待
CSSO_AGentDlg dlgParent;
dlgParent.Create(IDD_SSO_AGENT_DIALOG);
dlgParent.ShowWindow(SW_HIDE);
CSSO_AGentDlg dlg(&dlgParent);
m_pMainWnd = &dlg;
dlg.DoModal();
dlgParent.DestroyWindow();
return FALSE;
}
上面那部分改写一下就ok了。
BOOL CSSO_AGentDlg::OnInitDialog()
...{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// 去掉注释设置对话框的 WS_EX_APPWINDOW 扩展式样
this->ModifyStyleEx(WS_EX_APPWINDOW,0);
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
...{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
...{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
/**////////////////////自己的代码////////////////////////////
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
注意:对话框的扩展式样必须关闭,此方法在切换程序时候,还可以看到,以后在慢慢改进。
查了下资料,下面三步,用的别人的话
第一、创建对话框时必须将它作为某个不可见框架窗口的子窗口;
第二、这个不可见窗口的扩展式样必须设置 WS_EX_TOOLWINDOW;
第三、保证对话框的扩展式样没有设置 WS_EX_APPWINDOW;
我总结出有两部就ok。
代码如下:
BOOL CSSO_AGentApp::InitInstance()
...{
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
SetRegistryKey(_T("SSO AGent"));
//创建对话框时,把它作为不可见主框架窗口的子窗口对待
CSSO_AGentDlg dlgParent;
dlgParent.Create(IDD_SSO_AGENT_DIALOG);
dlgParent.ShowWindow(SW_HIDE);
CSSO_AGentDlg dlg(&dlgParent);
m_pMainWnd = &dlg;
dlg.DoModal();
dlgParent.DestroyWindow();
return FALSE;
}
上面那部分改写一下就ok了。
BOOL CSSO_AGentDlg::OnInitDialog()
...{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// 去掉注释设置对话框的 WS_EX_APPWINDOW 扩展式样
this->ModifyStyleEx(WS_EX_APPWINDOW,0);
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
...{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
...{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
/**////////////////////自己的代码////////////////////////////
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
注意:对话框的扩展式样必须关闭,此方法在切换程序时候,还可以看到,以后在慢慢改进。
相关文章推荐
- 如何隐藏显示在任务栏中的对话框程序
- 如何隐藏显示在任务栏中的对话框程序
- MFC对话框程序启动的时候直接隐藏、在任务栏不显示图标
- 如何隐藏显示在任务栏中的对话框程序
- 隐藏显示在任务栏中的对话框程序
- 在基于对话框的MFC程序中,使程序在任务栏中不显示图标
- 在基于对话框的MFC程序中,使程序在任务栏中不显示图标
- 如何使对话框程序启动以及主窗口最小化时不在任务栏上显示
- WPF 程序点击任务栏图标显示隐藏最小化窗体
- 基于对话框的程序,在任务栏隐藏对话框
- 显示或隐藏程序任务栏图标
- 全屏显示对话框,(隐藏任务栏)
- MFC 为程序制作一个系统托盘图标、显示隐藏任务栏图标
- 如何使对话框程序启动以及主窗口最小化时不在任务栏上显示
- 一个用快捷键隐藏或显示任务栏的小程序
- 教程-隐藏/显示任务栏-程序不在任务显示-全面控制Windows
- VC 隐藏任务栏,实现对话框的全屏显示
- Win7任务栏右下角小三角按钮如何显示以便隐藏更多的程序图标
- 基于对话框的MFC程序中,实现非模态子窗口在任务栏显示图标以及窗口左上角加图标
- ios 启动程序时隐藏状态栏,启动后显示状态栏