如何移动无标题栏的窗体

版权声明:原创文章转载时请附上原文链接 https://blog.csdn.net/aniven/article/details/556329

方法一:
1.在Form1類的头文件中聲明WM_NCHITTEST消息的回應過程函數:
...
public: // User declarations
    MESSAGE void __fastcall WMNCHitTest(TWMNCHitTest& Message);

    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest)
    END_MESSAGE_MAP(TForm)
...

2.在TForm1的cpp文件中定義WMNCHitTest過程,添加代碼如下:
void __fastcall TForm1::WMNCHitTest(TWMNCHitTest &Msg)
{
    TForm::Dispatch(&Msg);
    // 先對消息進行預處理,然后根据消息映射路徑,直到找到合适的消息響應函數。
    // 如果在整個類列表中未找到,同調用缺省消息處理函數(DefaultHandler)。
    // 類似Dephi中的過程:Inherited。
    if( Msg.Result==HTCLIENT)
        Msg.Result = HTCAPTION; // 消息參數轉換
}

方法二:
在物件的OnMouseDown事件中:
if(Button == mbLeft)
{
    ReleaseCapture();
    Perform(WM_NCLBUTTONDOWN,HTCAPTION, 0);
}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页