2010-05-13 61 views
1

我有一個父窗體,裏面有一些子窗口(不是窗體 - 只是窗口,例如標籤控件)。在某些情況下,我希望將其中一個子窗口繪製在其他窗口的「上方」,以在整個主窗體上顯示消息。我怎樣才能使孩子窗口最頂層?

我試着在子窗口上設置HWND_TOPMOST和HWND_TOP,但它似乎沒有任何效果。我做錯了什麼,或者HWND_TOPMOST和HWND_TOP只能用於表單,而不是表單中的控件?

謝謝。

回答

3

HWND_TOPMOST只適用於頂層窗口,而不適用於子窗口。

使用帶有HWND_TOP標誌的SetWindowPos來更改目標子窗口的zorder,以將其置於其兄弟中的zorder頂部。

請注意,子窗口中的zorder僅適用於兄弟姐妹 - 與同一父母的hwnds。

1

當我想將滾動條控件放在所有子窗口的頂部時,我遇到了這個問題。

我的解決辦法是:

  1. 使用WS_CLIPSIBLINGS到所有的子窗口。這可以防止重繪同級窗口的重疊區域。
  2. 使用hWndInsertAfter上帶有HWND_TOP的SetWindowPos將其置於其他控件之上。