如何获取窗口标题按钮的大小和位置(最小化、恢复、关闭)
是否有 API 调用来确定窗口标题按钮的大小和位置? 我正在尝试将 vista 风格的标题按钮绘制到所有者绘制的窗口上。 我正在处理c/c++/mfc。
编辑:有人有绘制关闭按钮的代码示例吗?
Is there an API call to determine the size and position of window caption buttons? I'm trying to draw vista-style caption buttons onto an owner drawn window. I'm dealing with c/c++/mfc.
Edit: Does anyone have a code example to draw the close button?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
GetSystemMetrics 函数应该可以帮助您确定大小(SM_CYSIZE 和 SM_CXSIZE 参数) 。
编辑
我不确定您是否可以找到具有此功能的职位,但您可以查看emule 源代码,他们成功地在窗口标题中添加了一个按钮。
GetSystemMetrics function should help you with a size (SM_CYSIZE and SM_CXSIZE parameters).
EDIT
I'm not sure you can find positions with this function but you might take a look at emule source code, they've managed to add a button to a window caption.
以下代码改编自我在 http://www.catch22 找到的“全局标题栏挂钩”示例。净/内容/片段。 我修改了该示例以使其适合 MFC。 它返回最左侧标题栏按钮的 X 坐标,但可以轻松修改它以查找任何按钮的位置。
The following code is adapted from the "Global Titlebar Hook" example I found at http://www.catch22.net/content/snippets. I modified the example to make it MFC-friendly. It returns the X-coordinate of the leftmost titlebar button but it could easily be modified to find the position of any of the buttons.
GetSystemMetrics 提供所有这些信息。 要在窗口装饰内绘制,请使用 GetWindowDC。
GetSystemMetrics gives all these informations. To draw within the window decoration, use GetWindowDC.
我找到了在 vista 中获取按钮位置所需的函数: WM_GETTITLEBARINFOEX
此链接还显示了使所有间距正确所需的系统指标(遗憾的是它不是完整的对话框图片)。 这在 Vista 中完美运行,并且大多数在 XP 中(在 XP 中按钮之间的间隙稍微太大)。
I've found the function required to get the position of the buttons in vista: WM_GETTITLEBARINFOEX
This link also shows the system metrics required to get all the spacing correct (shame it's not a full dialog picture though). This works perfectly in Vista, and mostly in XP (in XP there is slightly too much of a gap between the buttons).