| タスクトレイにのみアイコンを表示し、タスクバーにタスクスイッチを表示させないアプリケーションをつくる場合は、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;
}
 |