在开发过程中,经常需要查看和跟踪窗口消息,但是传统的查找工具往往界面静态,操作繁琐。为了解决这个问题,设计了MiniSpy,这是一个窗口属性查看工具,它提供了一种更为直观和动态的方式来查看窗口的属性。
MiniSpy的特点包括:
在2.0版本中,MiniSpy增加了以下新特性:
在1.2版本中,MiniSpy修复了以下问题:
在1.1版本中,MiniSpy增加了以下新特性:
1.11版本修复了以下问题:
所有使用的类、窗口、窗口Ex和控件样式都位于styles.h中。如果遗漏了任何样式,欢迎添加到版本中,并通过邮件发送给以供添加。
决定让MiniSpy始终处于顶部,因为觉得这样最有用。但是当在列表控件中打开工具提示时,它们出现在MiniSpy窗口后面!由于工具提示对于样式行非常有用,想到了一个有趣的解决方法:处理WM_ACTIVATEAPP,当MiniSpy不是活动窗口时使其处于最顶层,当它是活动窗口时使其不是最顶层。
为了检索窗口及其父窗口的标题,使用了WM_GETTEXT而不是GetWindowText。这是因为在某些情况下,GetWindowText似乎对某些窗口不起作用。
以下是一些MiniSpy中使用的代码示例:
// 手动实现RealWindowFromPoint(),用于win95
if (GetVersion() & 0x80000000) {
// Windows 95
typedef HWND (WINAPI *RealWindowFromPointType)(POINT);
HMODULE hUser32 = LoadLibrary("user32.dll");
RealWindowFromPointType RealWindowFromPoint = (RealWindowFromPointType)GetProcAddress(hUser32, "RealWindowFromPoint");
if (RealWindowFromPoint) {
POINT pt;
GetCursorPos(&pt);
return RealWindowFromPoint(pt);
}
}