最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

WindowsForm移動(dòng)一個(gè)沒有標(biāo)題欄的窗口的方法

 更新時(shí)間:2020年07月18日 09:48:11   作者:zhuanghamiao  
這篇文章主要介紹了WindowsForm移動(dòng)一個(gè)沒有標(biāo)題欄的窗口的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

在WinForm程序中,要移動(dòng)沒有標(biāo)題欄的窗口,基本的實(shí)現(xiàn)思路是監(jiān)聽需要拖動(dòng)窗口內(nèi)的控件的鼠標(biāo)事件,然后將鼠標(biāo)位置發(fā)送給窗口進(jìn)行相應(yīng)的位移就可以了。通過借用Windows API也可以很容易實(shí)現(xiàn)這一點(diǎn),比如像下面這樣。

public class Win32Api
{
  public const int WM_SYSCOMMAND = 0x112;
  public const int SC_DRAGMOVE = 0xF012;

  [DllImport("user32.Dll", EntryPoint = "ReleaseCapture")]
  public extern static void ReleaseCapture(); // 鼠標(biāo)捕獲
  [DllImport("user32.Dll", EntryPoint = "SendMessage")]
  public extern static void SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam); // 將消息發(fā)送給指定的窗口
}

private void pnlHeader_MouseDown(object sender, MouseEventArgs e)
{
  Win32Api.ReleaseCapture();
  Win32Api.SendMessage(this.Handle, Win32Api.WM_SYSCOMMAND, Win32Api.SC_DRAGMOVE, 0);
}

當(dāng)然,你還可以向這樣向窗口發(fā)送消息,來(lái)實(shí)現(xiàn)拖動(dòng)自定義標(biāo)題欄移動(dòng)窗口

public const int WM_NCLBUTTONDOWN = 0x00A1;
public const int HTCAPTION = 2;

private void pnlHeader_MouseDown(object sender, MouseEventArgs e)
{
  if (e.Button == MouseButtons.Left)
  {
    // 釋放控件已捕獲的鼠標(biāo)
    pnlHeader.Capture = false;

    // 創(chuàng)建并發(fā)送WM_NCLBUTTONDOWN消息
    Message msg =
      Message.Create(this.Handle, Win32Api.WM_NCLBUTTONDOWN,
        new IntPtr(Win32Api.HTCAPTION), IntPtr.Zero);
    this.DefWndProc(ref msg);
  }
}

以上就是WindowsForm移動(dòng)一個(gè)沒有標(biāo)題欄的窗口的方法的詳細(xì)內(nèi)容,更多關(guān)于WindowsForm 移動(dòng)窗口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

余庆县| 璧山县| 定远县| 双鸭山市| 潼关县| 福贡县| 兴山县| 宁都县| 虞城县| 阿荣旗| 湘潭市| 五原县| 应城市| 丹东市| 南丰县| 铜山县| 濮阳县| 台中市| 延吉市| 自贡市| 沙田区| 台南市| 同仁县| 吉木萨尔县| 含山县| 陆河县| 天等县| 上杭县| 北票市| 郸城县| 佛坪县| 体育| 宝坻区| 灵寿县| 开远市| 杭州市| 昌图县| 大化| 秀山| 辽源市| 尼玛县|