創(chuàng)建不在任務條中顯示窗口按鈕的應用

字號:

現(xiàn)在有很多應用程序都使用系統(tǒng)托盤區(qū)來放置圖標,這時候如果窗口的按鈕再出現(xiàn)在任務條中就顯得有些多余。創(chuàng)建不在任務條中顯示窗口按鈕的應用時可以使用下面的一些方法:創(chuàng)建對話框應用,創(chuàng)建一個POPUP窗口。但是對于一些已經(jīng)使用文檔/視結構開發(fā)好的程序來說要進行修改就比較困難,下面介紹一種簡單的方法可以很方便的實現(xiàn)這一功能,而且對程序的改動也不大。 這種方法的實質(zhì)創(chuàng)建一個隱藏的窗口,做為當前應用中框架窗口的父窗口。你需要對程序進行一點改動以適應這種需要。
    首先:在你的CFrameWnd派生類中定義一個CWnd對象。
    class CMainFrame : public CFrameWnd
    {
    ...
    protected:
    CWnd m_wndParent;
    ...
    然后重載派生類的CMainFrame::PreCreateWindow函數(shù),在函數(shù)中創(chuàng)建隱藏的父窗口。
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if (!CFrameWnd::PreCreateWindow(cs))
    return FALSE;
    // 創(chuàng)建一個隱藏窗口
    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;
    }