这些 WndProc 代码是什么意思?

发布于 2024-07-09 05:34:17 字数 243 浏览 11 评论 0原文

我正在尝试创建 一个在您单击外部时关闭的窗口它,目前我正在考虑通过处理 WndProc 函数来做到这一点。

到目前为止,我收到的消息似乎都没什么用,但有一些我根本不明白。 代码0x0118、0xC123、0xC128和0xC12E代表什么?

I'm trying to make a window that closes when you click outside it, and at the moment I'm looking into doing that by handling the WndProc function.

None of the messages I'm getting so far seem useful, but there are a few I don't understand at all. What do codes 0x0118, 0xC123, 0xC128 and 0xC12E represent?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木落 2024-07-16 05:34:17

0x0118:WM_SYSTIMER(未记录)用于插入符号闪烁

其他三个应该是应用程序定义的消息(0xC000 到 0xFFFF 范围内的任何消息),因此您在任何地方都找不到这些定义的消息。

0x0118: WM_SYSTIMER (undocumented) used for caret blinks

The other three should be application defined messages (anything in the range 0xC000 to 0xFFFF) so you won't find those defined anywhere.

酒与心事 2024-07-16 05:34:17

一个简单的方法就是捕获鼠标。 当您捕获鼠标时,您会在窗口外获得一键单击事件,然后捕获将关闭。

更困难的方法是设置低级鼠标窗口挂钩。 要执行全局挂钩,您必须将挂钩代码放入非托管 DLL 中。

一个真正简单的方法是在表单停用时关闭表单。

编辑

哎呀。 我刚刚意识到我没有回答您有关消息 ID 的直接问题。 消息 0x118 未在 winuser.h 中定义,因此我假设它是未记录的消息 ID。 0xC000 到 0xFFFF 范围内的消息 ID 是应用程序定义的消息。 这些 ID 由 RegisterWindowMessage 返回。

An easy way would be to just capture the mouse. When you have the mouse captured you get one click event outside your window, then capturing is turned off.

A harder way would be to set a low-level mouse windows hook. To do a global hook, you'll have to put your hook code in an unmanaged DLL.

A really easy way would be to just close your form when it's deactivated.

EDIT:

Oops. I just realized I didn't answer your direct question about the message IDs. Message 0x118 is not defined in winuser.h, so I assume it's an undocumented message ID. Message IDs in the range 0xC000 to 0xFFFF are application-defined messages. These IDs are returned by RegisterWindowMessage.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文