我有一个弹出对话框(CDialog
)处理WM_CTLCOLOR
消息以自行着色。它有一些使用 OwnerDraw 绘制自己的控件(如位图按钮)。它还有一个控件,可以显示一个占对话框 70% 大小的图像。
当用户重新调整对话框大小时,对话框中的一些控件应该重新定位(而不是重新调整大小)。它还涉及调整对话框内图像的大小。由于图像的重新调整大小使整个过程变慢,控件的单独重新定位会导致视觉效果闪烁。
我需要摆脱这些。一种想法是将控件作为中间对话框的子级,该中间对话框是原始弹出对话框的子级。因此,当重新调整大小时,我只能重新定位对话框,而不是单独移动每个控件。(重新定位只发生在一个方向(x或y),因此移动中间对话框就足够了。
由于它涉及一些编码工作,因此在此之前,我需要回答以下问题:
- 这行得通吗?
- 如果是,这种方法涉及的复杂性是什么?
- 有没有更好的办法?
请帮忙!