スタートボタンの表示と非表示は次のようにします。(戻る)
- タスクバーのウインドウ・ハンドルを取得
- (1)よりButtonというクラス名のハンドルを取得
- 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()関数を使わないようにして下さい。
- 分かりやすくするためにエラー処理は記述していません。
なぜでしょうか。
もしおわかりのことがございましたら、ご教授いただけないでしょうか。
よろしくお願いいたします。
スタートボタンのウインドウ・ハンドルは Windows OS のバージョンによって異なります。
公開しているスタートボタンの表示、非表示は Windows 95、98、Me、XP で利用できます。
Windows Vista、Windows 7 のタスクバー構造を調べれば表示、非表示を制御できると思います。
調べるときは http://blog.goo.ne.jp/masaki_goo_2006/e/cea1b601e33fb7a344ecba2ee972efe4 を利用して下さい。