我想知道是否有一種方法來添加(編程方式,當然)圖標/按鈕/除純文本以外的任何窗口(微軟Windows窗口...)的標題欄或最小化/最大化/關閉按鈕所在的位置旁邊。我可以自己繪製它,並創建一個幻覺它是窗口的一部分,但我想知道在user32 API中是否有這樣的方法。如何添加一個自定義按鈕到窗口'最小化/最大化/關閉(x)
到目前爲止,我找到了一種方法來禁用最小化/最大化/關閉按鈕,但沒有辦法給它們添加一個自定義的按鈕。我覺得很奇怪。
這是我想實現:
我一直想知道它是如何在這裏完成的,因爲使用GDI/GDI +繪製一個按鈕,每一個窗口,然後,如果它是由重疊檢測另一個窗口,然後只顯示非重疊部分在我看來似乎不太可能的解決方案。可能該按鈕已在窗口類中註冊,以便每個窗口都有此按鈕。任何指針怎麼辦?
另外,假設我沒有啓用Unicode,我該如何創建一個按鈕。然後在下面的代碼段:
HWND hwndCommandLink = CreateWindow(
L"BUTTON", // Class; Unicode assumed.
L"", // Text will be defined later.
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_COMMANDLINK, // Styles.
10, // x position.
10, // y position.
100, // Button width.
100, // Button height.
hDlg, // Parent window.
NULL, // No menu.
(HINSTANCE)GetWindowLong(hDlg, GWL_HINSTANCE),
NULL); // Pointer not needed.
SendMessage(clHwnd, WM_SETTEXT, 0, (LPARAM)L"Command link");
SendMessage(clHwnd, BCM_SETNOTE, 0, (LPARAM)L"with note");
我需要替換所有的美好的Windows常量與他們長期相當於....然而,當我尋找他們,我得到的是: http://msdn.microsoft.com/en-us/library/bb775951(v=VS.85).aspx
任何指針?
任何指針實際上意味着我可以到達的一個鏈接或一段代碼。當然它已經在SO中處理過了。我抽取了大量的代碼,但它仍然不會在Vista和XP中做我想要的。另外,由於我使用的是Java Native Access,因此我也遇到了其他一些問題,比如尋找覆蓋某些東西的方法。那麼,再一次,任何指針? – 2010-10-27 10:44:55
順便提一下,我仍然在尋找答案。總結一下:我需要一種方法來將一個獨立於主題的按鈕添加到所選Windows操作系統窗口的標題欄中。到目前爲止,我已經設法按照教程添加一個按鈕(實際上帶有「BUTTON」類的小窗口)到標題欄,但是Aero主題的改變使得外觀看起來非常難看。順便說一句,我正在使用JNA。 – 2010-11-03 09:52:06