2012-10-18 33 views
0

使用VB6,我知道如果AutoRedraw爲true,Form_Paint不會被調用。VB6中的Form_Paint和AutoRedraw

我有一些代碼,只有在Form_Paint中調用時才能一致地工作。

此代碼(在MDI項目中工作)通過GetMenu()API調用獲取父級上當前活動菜單的句柄。如果沒有在Form_Paint中調用,調用有時會返回舊的菜單句柄。

我的一個表單有AutoRedraw = true。我已經在Form_Activate中嘗試了GetMenu(parent.hWnd),但是這個太快了。

我也嘗試覆蓋WindowProc並從Form_Activate發送WM_USER消息。這是一個改進,但仍然不夠一致。

如何在子窗體的生命週期中稍後調用GetMenu(parent.hWnd)?

回答

0

您可以嘗試使用GotFocus事件。它落在激活的事件之後,並且在Paint事件之後。