2010-04-15 85 views
1

我已經使用窗口中的ReBar創建了一個帶有一些控件的工具欄。誰能告訴我,如何在win32中更改工具欄按鈕的位圖?

  1. 如何得到按鈕/組合框的HWND /等(在一個窗口中不正常的按鈕),如果我知道(只),它的標識?
  2. 如何獲取HBITMAP,如果我知道資源的ID?
  3. 如何將位圖設置爲控制器? SendDlgItemMessageW(hWnd,nId,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBitmap);

這不適用於工具欄,不是嗎?我找不到辦法做到這一點,請幫助我。謝謝...

問候

編輯: 任何人都好嗎? :(

編輯:。?。 好,似乎大家都在忙這些天:(順便說一句,這是一個錯誤的問題

+0

你是什麼意思控制器?一個鋼筋樂隊? – 2010-04-16 13:10:42

+0

嘿!像Button,Combobox等螺紋鋼中的任何東西(我沒有任何其他詞來形容它)。謝謝。 – Morpheus 2010-04-16 14:55:34

+0

我認爲鋼筋控制包含一個或多個鋼筋帶,而鋼筋帶只能包含一個控制。請參閱http://msdn.microsoft.com/en-us/library/bb774373(VS.85).aspx。您能否詳細說明您在MSDN文章的語言中的含義? – 2010-04-16 16:06:45

回答

1

你可以下載ControlSpy並嘗試在那裏感受一下它。
我檢查了鋼筋,看到RB_SETBANDINFO(在消息)可能是你在找什麼。

+0

嘿!這非常有用。謝謝.... 。 – Morpheus 2010-04-16 18:01:20

0

GetDlgItem將與鋼筋,因爲它有一個對話做很好的工作

您可以將GetDlgItem函數用於任何父子窗口對,而不僅僅用於對話框。只要hDlg參數指定父窗口並且子窗口具有唯一標識符(由hMenu參數指定在創建子窗口的CreateWindow或CreateWindowEx函數中),GetDlgItem返回子窗口的有效句柄。

您可以使用LoadImage從資源加載位圖並返回HBITMAP。

最後,SendMessage(hWndButton, BM_SETIMAGE, (WPARAM) IMAGE_BITMAP, (LPARAM) hBitmap);

+0

嘿!非常感謝。我會試試看。 – Morpheus 2010-04-18 05:22:44