2010-01-18 99 views
1

我正在考慮增加對DeferWindowPos的使用。到目前爲止,我在一些簡單的情況下使用它,並沒有注意到任何問題。你知道有什麼隱患,例如, FLeft/FTop/...字段未正確更新或類似的東西?DeferWindowPos與VCL協同工作嗎?

回答

6

DeferWindowPos應該不是問題,因爲WM_WINDOWPOSCHANGED,WM_MOVE和WM_SIZE消息在move/resize完成後仍然發送。 DeferWindowPos的工作方式就好像用戶移動窗口或調整窗口大小,VCL跟蹤所有更改並正確更新FLeft,FTop,FWidth和FHeight。

+3

請記住,調整大小/移動的每個窗口必須共享相同的父項,才能使DeferWindowPos正常工作。這是Windows的要求,而不是VCL所要求的。 – 2010-01-18 20:57:36

+1

+1。我從來沒有任何問題,該功能。一個明顯的警告是,被移動的控件必須具有窗口句柄,因此排除TLabel和TImage之類的東西。不過,這對我來說並不是一個問題。 – 2010-01-18 21:32:48