プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

スタートボタンの表示/非表示

2007年09月12日 16時23分33秒 | タスクバー関連

スタートボタンの表示非表示は次のようにします。(戻る)

  1. タスクバーのウインドウ・ハンドルを取得
  2. (1)よりButtonというクラス名のハンドルを取得
  3. ShowWindow()関数で表示と非表示を行う

ウインドウ・ハンドルの取得はFindWindowEx()関数を使います。
スタートボタンの表示と非表示はShowWindow()関数で行います。

プロトタイプ宣言

HWND FindWindow(
    LPCTSTR     lpClassName,        // ウインドウのクラス名
    LPCTSTR     lpTitleName         // ウインドウのタイトル名
);

HWND FindWindowEx(
    HWND        hwndParent,         // 親ウインドウのハンドル
    HWND        hwndChildAfter,     // 子ウインドウのハンドル
    LPCTSTR     lpClassName,        // ウインドウのクラス名
    LPCTSTR     lpTitleName         // ウインドウのタイトル名
);

BOOL ShowWindow(
    HWND        hWnd,               // ウインドウ・ハンドル
    int         nCmdShow            // 表示状態
);

サンプル

HWND hTaskBar;  // タスクバー用
HWND hStart;    // スタートボタン用

// タスクバーのウインドウ・ハンドルを取得
hTaskBar = FindWindow( TEXT("Shell_TrayWnd"), NULL );

// スタートボタンのウインドウ・ハンドルを取得
hStart = FindWindowEx( hTaskBar, NULL, TEXT("Button"), NULL );

// 表示
ShowWindow( hStart, SW_SHOW );

// 非表示
ShowWindow( hStart, SW_HIDE );
  • タスクバーのウインドウ・ハンドルhTaskBarが取得できなければFindWindowEx()関数を使わないようにして下さい。
  • スタートボタンのウインドウ・ハンドルhStartが取得できなければShowWindow()関数を使わないようにして下さい。
  • 分かりやすくするためにエラー処理は記述していません。

関連記事



コメント (2)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« スタートボタンのウインドウ取得 | トップ | スタートボタンの有効化/無効化 »
最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Winodws Vista/7で、できません (ten)
2010-05-18 03:50:19
表題の通りです。
なぜでしょうか。
もしおわかりのことがございましたら、ご教授いただけないでしょうか。
よろしくお願いいたします。
返信する
Re:Winodws Vista/7で、できません (ブログ管理人)
2010-05-29 22:17:59
tenへ。
スタートボタンのウインドウ・ハンドルは Windows OS のバージョンによって異なります。
公開しているスタートボタンの表示、非表示は Windows 95、98、Me、XP で利用できます。
Windows Vista、Windows 7 のタスクバー構造を調べれば表示、非表示を制御できると思います。
調べるときは http://blog.goo.ne.jp/masaki_goo_2006/e/cea1b601e33fb7a344ecba2ee972efe4 を利用して下さい。
返信する

コメントを投稿

タスクバー関連」カテゴリの最新記事