【发布时间】:2011-12-10 08:42:01
【问题描述】:
我已经使用 WTL 编写了一个简单的 GUI:
就设置窗口而言,我已经弄清楚了一切,并且还连接了菜单等以调用我想要的任何东西。但我需要知道,例如,何时有人选中列表视图中的复选框之一,或何时有人点击按钮。
这些子窗口是否向主窗口发送消息通知状态更改,并且该通知在子窗口类型之间是否大体一致?
【问题讨论】:
-
如果你用 WTL 编程,你最好的朋友就是 Spy++。记住它! :-)(它是 Visual Studio 中包含的一个工具。我认为它没有安装在“标准”安装中)
-
@xanatos:我该怎么处理它? :P
-
你启动它 :-) 你启动你想要监视的应用程序。你做 Window->Refresh 只是为了确定。 Spy->Log Messages,您使用 Finder 工具“查找”您的窗口(通常您选择控件的父级),您从 Message 选项卡中选择的所有消息开始,然后执行 Ok。然后您会看到它正在捕获 100 万条无用的消息并开始禁用它们(WM_MOUSEMOVE、WM_MOUSELEAVE...)(您可以右键单击消息并选择停止记录消息)。您将发现“旧”Winapi 控件背后的世界。 WPF/Silverlight 控件是另一个世界。
-
其他可能性(通常更好)。您从“窗口”窗口开始。窗口->刷新。您使用“查找窗口”按钮。你找到了你的窗口的控件。好的。在属性检查器中单击同步。现在控件在 Window 窗口中被“选中”。从那里您可以查找它的父母/孩子/兄弟姐妹,右键单击其中之一,消息。