スタートボタンの文字列を取得と設定するには次のようにします。(戻る)
- タスクバーのウインドウ・ハンドルを取得
- (1)よりButtonというクラス名のハンドルを取得
- WM_GETTEXTで取得、WM_SETTEXTで設定を行う
ウインドウ・ハンドルの取得はFindWindowEx()関数を使います。
スタートボタンの取得と設定はSendMessage()関数で行います。
プロトタイプ宣言
HWND FindWindow( LPCTSTR lpClassName, // ウインドウのクラス名 LPCTSTR lpTitleName // ウインドウのタイトル名 ); HWND FindWindowEx( HWND hwndParent, // 親ウインドウのハンドル HWND hwndChildAfter, // 子ウインドウのハンドル LPCTSTR lpClassName, // ウインドウのクラス名 LPCTSTR lpTitleName // ウインドウのタイトル名 ); LRESULT SendMessage( HWND hWnd, // ウインドウ・ハンドル UINT uMsg, // メッセージ定数 WPARAM wParam, // メッセージの1つ目のパラメータ LPARAM lParam // メッセージの2つ目のパラメータ );
サンプル
TCHAR szBuff[ 1024 ]; // バッファ領域 int nLength; // 文字列の長さ HWND hTaskBar; // タスクバー用 HWND hStart; // スタートボタン用 // タスクバーのウインドウ・ハンドルを取得 hTaskBar = FindWindow( TEXT("Shell_TrayWnd"), NULL ); // スタートボタンのウインドウ・ハンドルを取得 hStart = FindWindowEx( hTaskBar, NULL, TEXT("Button"), NULL ); // 文字列の取得 nLength = (int)SendMessage( hStart, WM_GETTEXT, (WPARAM)sizeof(szBuff), (LPARAM)szBuff ); // 文字列の設定 SendMessage( hStart, WM_SETTEXT, 0, (LPARAM)TEXT("これがタイトル文字列") );
- タスクバーのウインドウ・ハンドルhTaskBarが取得できなければFindWindowEx()関数を使わないようにして下さい。
- スタートボタンのウインドウ・ハンドルhStartが取得できなければSendMessage()関数を使わないようにして下さい。
- 分かりやすくするためにエラー処理は記述していません。
※コメント投稿者のブログIDはブログ作成者のみに通知されます