我想知道是否有一种方法来添加(编程方式,当然)图标/按钮/除纯文本以外的任何窗口(微软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