2009-12-02 161 views
0

我想調試一個我基本上不熟悉的win32 windows-mobile應用程序。確定子窗口位置

我強制定期InvalidateRect(hWnd,NULL,FALSE),每次我調用WM_PAINT方法,但GetUpdateRect()返回0,0,0,0,顯然沒有任何繪製的是可見。 GetWindowRect()和GetClientRect()顯示窗口在那裏,並不是零大小。

我猜測窗戶完全被孩子遮住了。但是,它試圖在代碼中找到這些孩子的迷宮。

我該如何處理調試呢?例如。我可以列出這些孩子和他們的位置嗎?

回答

0

我想你已經知道這一點,但以防萬一,如果您的GetUpdateRect調用是在處理WM_PAINT時調用BeginPaint,然後接收一個空矩形是預期的行爲。請參閱GetUpdateRec文檔中的備註:

由BeginPaint函數檢索的更新矩形與GetUpdateRect檢索的更新矩形相同。

BeginPaint會自動驗證更新區域,所以在調用BeginPaint之後立即對GetUpdateRect進行的任何調用都將檢索一個空的更新區域。

您可以用EnumChildWindows枚舉子窗口。

0

我會從Remote Spy ++開始看看發生了什麼。您也可以撥打FindWindowEx查看兄弟姐妹等