我觉得自己很蠢,但我不能找到一个解决方案,我认为这是很容易出现问题。
我有一个用户控件(基本上)示出了在的图像绘制它的OnPaint阶段:
protected override void OnPaint(PaintEventArgs e)
{
if (img != null)
e.Graphics.DrawImage(img, ...);
}
当用户控制的大小时,它必须执行许多操作和一个(给定的特定条件)调整图像适合宽度或高度等...
图像显示可以是“沉重的”,所以当用户开始调整大小和移动鼠标,结果是一种缓慢运动这对最终用户不好。
所以我想知道是否有Windows消息报告我调整大小操作开始或完成:如果是这样,我可以停止重新调整大小时开始调整大小结束时重新绘制图像。
感谢大家
编辑:
我尝试这样做:
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;
}
}
,但这些消息不会被调用:(
我可以假设你的控制带来调整因为它停靠在正在调整大小的面板或表单上? – hometoast
@hometoast:是的,但我不控制容器形式...我的控件将被其他人使用... – Marco