如何向Windows添加自定义按钮最小化/最大化/关闭(x)

时间:2010-10-27 08:29:28

标签: windows winapi custom-controls titlebar user32

我想知道是否有办法添加(编程,当然)图标/按钮/除了纯文本以外的任何内容到窗口(Microsoft Windows窗口...)的标题栏或最小化/最大化/关闭按钮是。我可以自己绘制并创建一个幻觉它是窗口的一部分,但我想知道在user32 api中是否有这样的方法。

到目前为止,我找到了一种方法来禁用最小化/最大化/关闭按钮,但却找不到向其添加自定义按钮的方法。这对我来说很奇怪。

以下是我要实现的目标: alt text

我一直想知道如何在这里完成,因为使用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

任何指针?

0 个答案:

没有答案