可能的重复:
用户控件的“ResizeEnd”等效项
我觉得自己很愚蠢,但我找不到解决我认为很容易的问题的方法。
我有一个用户控件(基本上)显示在绘制期间绘制的图像onPaint stage:
protected override void OnPaint(PaintEventArgs e)
{
if (img != null)
e.Graphics.DrawImage(img, ...);
}
当用户控件调整大小时,它必须执行许多操作,其中一个是(在给定特定条件下)调整图像大小以适应宽度或高度等......
显示的图像可能很“重”,因此当用户开始调整大小并移动鼠标时,结果是一种缓慢的运动这对最终用户不利。
所以我想知道是否有 Windows 消息报告我调整大小操作正在开始或完成:如果是这样,我可以在调整大小开始时停止重绘,并在调整大小结束时重新绘制图像。
谢谢大家
EDITED:
我试过这个:
protected override void WndProc(ref Message m)
{
const int WM_ENTERSIZEMOVE = 0x0231;
const int WM_EXITSIZEMOVE = 0x0232;
switch (m.Msg)
{
case WM_ENTERSIZEMOVE: resizing = true; break;
case WM_EXITSIZEMOVE: resizing = false; break;
}
}
但这些消息永远不会被调用:(
您可能感兴趣的是表单.ResizeBegin and 表单.ResizeEnd events.
如果您使用的是 WPF,则此MSDN 上的线程您可能会感兴趣。 WPF 需要黑客知道调整大小何时开始/结束
EDIT
没有注意到它是一个 UserControl !这个问题似乎可以解决您的问题:用户控件的“ResizeEnd”等效项
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)