アトリエ ぺっぺ

トップページ > プログラムTips > タスクバーにアプリケーションを登録させない

◆ タスクバーにアプリケーションを表示させない
タスクトレイにのみアイコンを表示し、タスクバーにタスクスイッチを表示させないアプリケーションをつくる場合は、2通りの方法があります。
 
@ メインウィンドウを非表示状態にする。メインウィンドウを表示しないアプリケーションを作成する場合、有効。
A アプリケーションの属性をはずし、ツールウィンドウの属性を付加する。
 
@の場合は、CWndのShowWindowメソッドを使用します。
BOOL CMyDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    //    :
    //    省略
    //    :

    // 非表示に設定します。
    ShowWindow(SW_HIDE);

    return TRUE;
}

Aの場合は、GetWindowLong関数とSetWindowLong関数を使用し、ウィンドウスタイルを変更します。
// タスクバーからスイッチを除去する関数を
// このように作成するとよいでしょう。
void ConcealsTaskSwitch(HWND hWnd)
{
    // 拡張ウィンドウスタイルを取得
    LONG lStyle = ::GetWindowLong(hWnd, GWL_EXSTYLE);
    // メインウィンドウの属性を除去
    lStyle ^= WS_EX_APPWINDOW;
    // ツールウィンドウの属性を追加
    lStyle |= WS_EX_TOOLWINDOW;
    // 拡張ウィンドウスタイルを設定
    ::SetWindowLong(hWnd, GWL_EXSTYLE, lStyle);
}

BOOL CMyDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    //    :
    //    省略
    //    :

    // 上記に作成してある関数を呼びます。
    ConcealsTaskSwitch(m_hWnd);

    return TRUE;
}
 

(C) 2002 atelier-peppe
ababa@atelier-peppe.sakura.ne.jp