我覺得自己很蠢,但我不能找到一個解決方案,我認爲這是很容易出現問題。
我有一個用戶控件(基本上)示出了在的圖像繪製它的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