我必須解決一些問題,並強化很久以前爲數據庫項目編寫的窗體設計器。 在設計面板類代碼我遇到這些行自定義窗體設計器,使用WinAPI移動/調整控件大小
private void DesignPanel_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
(sender as Control).Capture = false;
switch (FMousePosition)
{
case MousePosition.mpNone:
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, 0xF009, 0);
break;// Move
case MousePosition.mpRightBottom:
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, 0xF008, 0);
break;//RB
case MousePosition.mpLeftBottom:
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, 0xF007, 0);
// ... here are similar cases ...
case MousePosition.mpLeft:
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, 0xF001, 0);
break;//L
}
}
}
FMousePosition指示鼠標是否超過選擇的控制的任何邊緣。
讓我困惑的是這些窗口消息:它似乎沒有關於WM_SYSCOMMAND的參數爲0xF001-0xF009的文檔(也許它開始某種'拖/調整序列')。有任何想法嗎?
如果我的建議是正確的,那我該如何取消這些序列?