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

WinForm實(shí)現(xiàn)攔截窗體上各個(gè)部位的點(diǎn)擊特效實(shí)例

 更新時(shí)間:2014年09月25日 11:11:33   投稿:shichen2014  
這篇文章主要介紹了WinForm實(shí)現(xiàn)攔截窗體上各個(gè)部位的點(diǎn)擊特效實(shí)例,對(duì)窗體上各個(gè)部位進(jìn)行定義,從而實(shí)現(xiàn)了點(diǎn)擊特效,需要的朋友可以參考下

本文實(shí)例講述了WinForm實(shí)現(xiàn)攔截窗體上各個(gè)部位的點(diǎn)擊特效,是一個(gè)非常實(shí)用的技巧。分享給大家供大家參考。具體分析如下:

一般來(lái)說(shuō),windows窗體的標(biāo)題欄無(wú)法直接通過(guò)一些默認(rèn)的事件來(lái)控制,需要了解和WM_NCHITTEST相關(guān)的windows消息。

以下示例演示了最簡(jiǎn)單的效果片斷:他會(huì)把客戶區(qū)和標(biāo)題欄的效果互換,比如無(wú)法按住標(biāo)題欄拖動(dòng)窗體而是改為了按住客戶區(qū)拖動(dòng),并禁用了關(guān)閉按鈕。 其中m.Result從-2到21都有定義,分別對(duì)應(yīng)了整個(gè)窗體的各個(gè)部位,比如1代表客戶區(qū),8代表最小化按鈕等等。

具體功能代碼如下:

using System; 
using System.Windows.Forms; 
namespace WindowsApplication42 
{ 
 public partial class Form1 : Form 
 { 
  public Form1() { InitializeComponent(); this.Text = "雙擊左上角圖標(biāo)關(guān)閉窗體"; } 
  //攔擊標(biāo)題欄鼠標(biāo)位置事件 
  const int WM_NCHITTEST = 0x84; 
  protected override void WndProc(ref Message m) 
  { 
   base.WndProc(ref m); if (m.Msg == WM_NCHITTEST) 
   { 
    switch (m.Result.ToInt32()) 
    { 
     case 1://客戶區(qū) 
      m.Result = new IntPtr(2); break; 
     case 2://標(biāo)題欄 
      m.Result = new IntPtr(1); break; 
     case 20: m.Result = new IntPtr(0); break; 
     default: Console.WriteLine(m); break; 
    } 
   } 
  } 
 } 
}

下面是各個(gè)常量的意義:從Delphi7 VCL中摘?。?/p>

{ WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes } 
 {$EXTERNALSYM HTERROR} 
 HTERROR = -2; 
 {$EXTERNALSYM HTTRANSPARENT} 
 HTTRANSPARENT = -1; 
 {$EXTERNALSYM HTNOWHERE} 
 HTNOWHERE = 0; 
 {$EXTERNALSYM HTCLIENT} 
 HTCLIENT = 1; 
 {$EXTERNALSYM HTCAPTION} 
 HTCAPTION = 2; 
 {$EXTERNALSYM HTSYSMENU} 
 HTSYSMENU = 3; 
 {$EXTERNALSYM HTGROWBOX} 
 HTGROWBOX = 4; 
 {$EXTERNALSYM HTSIZE} 
 HTSIZE = HTGROWBOX; 
 {$EXTERNALSYM HTMENU} 
 HTMENU = 5; 
 {$EXTERNALSYM HTHSCROLL} 
 HTHSCROLL = 6; 
 {$EXTERNALSYM HTVSCROLL} 
 HTVSCROLL = 7; 
 {$EXTERNALSYM HTMINBUTTON} 
 HTMINBUTTON = 8; 
 {$EXTERNALSYM HTMAXBUTTON} 
 HTMAXBUTTON = 9; 
 {$EXTERNALSYM HTLEFT} 
 HTLEFT = 10; 
 {$EXTERNALSYM HTRIGHT} 
 HTRIGHT = 11; 
 {$EXTERNALSYM HTTOP} 
 HTTOP = 12; 
 {$EXTERNALSYM HTTOPLEFT} 
 HTTOPLEFT = 13; 
 {$EXTERNALSYM HTTOPRIGHT} 
 HTTOPRIGHT = 14; 
 {$EXTERNALSYM HTBOTTOM} 
 HTBOTTOM = 15; 
 {$EXTERNALSYM HTBOTTOMLEFT} 
 HTBOTTOMLEFT = 16; 
 {$EXTERNALSYM HTBOTTOMRIGHT} 
 HTBOTTOMRIGHT = 17; 
 {$EXTERNALSYM HTBORDER} 
 HTBORDER = 18; 
 {$EXTERNALSYM HTREDUCE} 
 HTREDUCE = HTMINBUTTON; 
 {$EXTERNALSYM HTZOOM} 
 HTZOOM = HTMAXBUTTON; 
 {$EXTERNALSYM HTSIZEFIRST} 
 HTSIZEFIRST = HTLEFT; 
 {$EXTERNALSYM HTSIZELAST} 
 HTSIZELAST = HTBOTTOMRIGHT; 
 {$EXTERNALSYM HTOBJECT} 
 HTOBJECT = 19; 
 {$EXTERNALSYM HTCLOSE} 
 HTCLOSE = 20; 
 {$EXTERNALSYM HTHELP} 
 HTHELP = 21;

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • DataGridView設(shè)置單元格的提示內(nèi)容ToolTip

    DataGridView設(shè)置單元格的提示內(nèi)容ToolTip

    這篇文章介紹了DataGridView設(shè)置單元格提示內(nèi)容ToolTip的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#中的命名空間詳解(Namespace)

    C#中的命名空間詳解(Namespace)

    文章介紹了命名空間在C#編程中的作用,包括命名空間的定義與使用、using關(guān)鍵字的使用以及嵌套命名空間的實(shí)現(xiàn),通過(guò)這些機(jī)制,開(kāi)發(fā)者可以有效地組織和隔離代碼,避免命名沖突,提高代碼的可讀性和可維護(hù)性
    2024-12-12
  • C#獲取指定目錄最后寫(xiě)入時(shí)間的方法

    C#獲取指定目錄最后寫(xiě)入時(shí)間的方法

    這篇文章主要介紹了C#獲取指定目錄最后寫(xiě)入時(shí)間的方法,涉及C#中LastWriteTime屬性的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#語(yǔ)法之泛型的多種應(yīng)用

    C#語(yǔ)法之泛型的多種應(yīng)用

    這篇文章主要介紹了C#語(yǔ)法之泛型的多種應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • C#中System.IO.Pipelines庫(kù)的使用詳解

    C#中System.IO.Pipelines庫(kù)的使用詳解

    System.IO.Pipelines 是一個(gè)庫(kù),旨在使在 .NET 中執(zhí)行高性能 I/O 更加容易,本文主要為大家詳細(xì)介紹了System.IO.Pipelines具體使用方法,感興趣的可以了解下
    2023-12-12
  • c#求兩個(gè)數(shù)中最大值的方法

    c#求兩個(gè)數(shù)中最大值的方法

    這篇文章主要介紹了c#求兩個(gè)數(shù)中最大值的方法,需要的朋友可以參考下
    2014-02-02
  • C# 10分鐘完成百度人臉識(shí)別(入門(mén)篇)

    C# 10分鐘完成百度人臉識(shí)別(入門(mén)篇)

    這篇文章主要介紹了C# 10分鐘完成百度人臉識(shí)別(入門(mén)篇),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • C#實(shí)現(xiàn)向多線程傳參的三種方式實(shí)例分析

    C#實(shí)現(xiàn)向多線程傳參的三種方式實(shí)例分析

    這篇文章主要介紹了C#實(shí)現(xiàn)向多線程傳參的三種方式,以實(shí)例形式較為詳細(xì)的分析了C#多線程及參數(shù)傳遞的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Unity實(shí)現(xiàn)簡(jiǎn)單手勢(shì)識(shí)別

    Unity實(shí)現(xiàn)簡(jiǎn)單手勢(shì)識(shí)別

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單手勢(shì)識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • c#分頁(yè)顯示服務(wù)器上指定目錄下的所有圖片示例

    c#分頁(yè)顯示服務(wù)器上指定目錄下的所有圖片示例

    這篇文章主要介紹了c#分頁(yè)顯示服務(wù)器上指定目錄下的所有圖片示例,需要的朋友可以參考下
    2014-05-05

最新評(píng)論

焦作市| 探索| 邛崃市| 台北市| 江口县| 安多县| 海丰县| 堆龙德庆县| 南平市| 长武县| 多伦县| 葫芦岛市| 舒兰市| 新乡市| 临海市| 鄂托克前旗| 呈贡县| 凤冈县| 安丘市| 新宾| 河北省| 建瓯市| 张家口市| 南丹县| 城口县| 淮南市| 临夏市| 高邑县| 钟祥市| 沂水县| 安泽县| 青海省| 曲沃县| 南召县| 马关县| 分宜县| 宽甸| 安仁县| 武冈市| 达拉特旗| 灵石县|