我正在尝试调试我很不熟悉的win32 windows-mobile应用程序。
我强制定期使用InvalidateRect(hWnd,NULL,FALSE),每次调用WM_PAINT方法时,GetUpdateRect()返回0,0,0,0,显然没有任何被绘制的内容可见。 GetWindowRect()和GetClientRect()显示窗口在那里并且不是零大小。
我猜这个窗户被孩子们完全遮住了。然而,它是一个试图在代码中找到这些孩子的迷宫。
我应该如何调试此问题?例如。我可以列出这些孩子和他们的职位吗?
答案 0 :(得分:0)
我从Remote Spy ++开始,看看发生了什么。您也可以致电FindWindowEx查看兄弟姐妹等。
答案 1 :(得分:0)
我想你已经意识到了这一点,但是以防万一,如果你对GetUpdateRect的调用是在处理WM_PAINT时跟随对BeginPaint的调用,那么接收一个空矩形是预期的行为。请参阅GetUpdateRec文档中的备注:
BeginPaint函数检索的更新矩形与GetUpdateRect检索的更新矩形相同。
BeginPaint自动验证更新区域,因此在调用BeginPaint之后立即调用GetUpdateRect会检索一个空的更新区域。
您可以使用EnumChildWindows枚举子窗口。