• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ボタンのアイコン表示)

ボタンのアイコン表示

このQ&Aのポイント
  • CreateWindowで作成したボタンを、アイコン表示にしたいのですけれど上手くいきません。
  • どこが悪いのでしょうか?
  • 開発環境はVistaで、Visual Studio2012を使用しています。C言語での開発です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

>申し訳ありません。質問時の記述ミスです。 では…… >static HWND hButton; >hButtonREC = CreatePushButton( hwnd, >SendDlgItemMessage( hButtonREC, はどうでしょう? というか… SendDlgItemMessage()ではなく、直前でCreateWindw()してボタンのHWNDが判っているのですから 直接SendMessage()すればよいのではありませんか? SendDlgItemMessage()だとしたら… SendDlgItemMessage(hwnd, ID_BUTTON_RCE, BM_SETIMAGE, IMAGE_ICON, (LPARAM)m_hIcon); じゃありませんか? # 第1引数(親ウィンドウ)に注意。 VS2005ですが… スケルトンで作成されたWndProc()に 下記を追加しただけでボタンにアイコン表示されていますが……。 static HWND hButton; static HICON hIcon; case WM_CREATE: hButton = CreateWindow(_T("BUTTON"), _T("テスト"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON | BS_ICON, 20, 200, 40, 40, hWnd, (HMENU)1234, hInst, NULL); hIcon = LoadIcon(NULL, IDI_ERROR); SendMessage(hButton, BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIcon); break;

necozuki25
質問者

お礼

回答ありがとうございます。 おかげさまで、アイコン表示することが出来ました。簡単な所で間違っていたのですね。申し訳ない。 ネット検索したところ、SendDlgItemMessage()が使われてたので、こちらを使っていました。やはり、SendMessage()で良いのですね。大変ためになり、助かりました。ありがとうございました。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>        hButtonREC = CreatePushButton( hwnd, >                              20, 20, >                              80, 40, >                               _T("テスト"), >                              ID_BUTTON  ); ボタンを作成する時のIDは「ID_BUTTON」。 >        SendDlgItemMessage( hButtonREC, >                      ID_BUTTON_RCE, >                      BM_SETIMAGE, >                      IMAGE_ICON, >                      (LPARAM)m_hIcon); アイコンを設定する時のIDは「ID_BUTTON_RCE」ですが、 ID_BUTTONとID_BUTTON_RCEはおなじものになっていますか?

necozuki25
質問者

補足

早速の回答ありがとうございます。 申し訳ありません。質問時の記述ミスです。 プログラムでは、同じになっていますが表示されません。

関連するQ&A