创建不在任务条中显示窗口按钮的应用
敬业的IT人
互联网
佚名
2008-1-4 18:50:09
现在有很多应用程序都使用系统托盘区来放置图标,这时候如果窗口的按钮再出现在任务条中就显得有些多余。创建不在任务条中显示窗口按钮的应用时可以使用下面的一些方法:创建对话框应用,创建一个POPUP窗口。但是对于一些已经使用文档/视结构开发好的程序来说要进行修改就比较困难,下面介绍一种简单的方法可以很方便的实现这一功能,而且对程序的改动也不大。 这种方法的实质创建一个隐藏的窗口,做为当前应用中框架窗口的父窗口。你需要对程序进行一点改动以适应这种需要。
首先:在你的CFrameWnd派生类中定义一个CWnd对象。
class CMainFrame : public CFrameWnd
{
...
protected:
CWnd m_wndParent;
...
然后重载派生类的CMainFrame::PreCreateWindow函数,在函数中创建隐藏的父窗口。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// 创建一个隐藏窗口
if (!::IsWindow(m_wndParent.m_hWnd))
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if (!m_wndParent.CreateEx(0, pstrOwnerClass, "", WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, 0))
return FALSE;
}
cs.hwndParent = m_wndParent.m_hWnd;
return TRUE;
}
首先:在你的CFrameWnd派生类中定义一个CWnd对象。
class CMainFrame : public CFrameWnd
{
...
protected:
CWnd m_wndParent;
...
然后重载派生类的CMainFrame::PreCreateWindow函数,在函数中创建隐藏的父窗口。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
// 创建一个隐藏窗口
if (!::IsWindow(m_wndParent.m_hWnd))
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if (!m_wndParent.CreateEx(0, pstrOwnerClass, "", WS_POPUP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, 0))
return FALSE;
}
cs.hwndParent = m_wndParent.m_hWnd;
return TRUE;
}
- 最新文章
- 实现操作过程提示对话框[01-04]
- 在同一系统中显示GB字符和BIG5字符[01-04]
- 快速实现MFC类浏览器[01-04]
- 如何在指定矩形中旋转显示文字[01-04]
- 如何判断当前操作系统的版本[01-04]
- VC下实现DirectSound[01-04]
- 相关文章
- 在VC应用程序中插入微型动画[01-04]
- Visual C 应用框架揭密[01-04]
- 如何在Windows应用程序中实现电子注册功能[01-04]
- VC 6.0中实现将应用程序的图标加入到Windows的系统..[01-04]
- 防止Visual C 应用程序缓冲区溢出[01-04]
- 用VC 实现应用程序窗口的任意分割[01-04]
