欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

Winform實現(xiàn)鼠標(biāo)可穿透的窗體鏤空效果

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

今天找到一個名叫LICEcap的錄屏軟件,錄制界面是這樣的:

  這個炫酷的空心窗口就是鏡頭,調(diào)整好大小,然后對準需要錄制的地方按下Record就可以生成gif了。

  臥槽太NB了我也要做一個!

  根據(jù)StackOverflow站的提示(在這里),我們需要使用一個在Windows2000及之后平臺可用的,用以實現(xiàn)不規(guī)則窗體的分層窗口API (SetLayerWindowAttributes).根據(jù)百度我們先需要使用一個名為SetWindowLong的Win32 API來把窗體設(shè)定為分層窗體。

  為了在.NET平臺中調(diào)用Win32 API,我們需要復(fù)習(xí)下P/Invoke的內(nèi)容:

1.什么是P/Invoke

  P/Invoke 的全稱是Platform Invoke。.是一種在托管平臺下使用非托管dll中導(dǎo)出函數(shù)的一種調(diào)用機制。

2.如何用P/Invoke

  它長這樣:

[DllImportAttribute("user32.dll", EntryPoint="SetCursorPos")]
public static extern bool SetCursorPos(int X, int Y) ;

  依次指明調(diào)用的dll名稱,導(dǎo)出函數(shù)名,然后定義成C#標(biāo)準的方法就行了。

  所以,我們需要: 打開百度百科,搜索API名稱,查看宿主dll,抄來函數(shù)原型,按照說明定義需要的常量。

  不,我找到了更方便的辦法:打開pinvoke.net,搜索API名稱:

  按照里邊的C#Signature復(fù)制過來,再根據(jù)Sample Code改改,就OK了。

  然后在Visual Studio里新建一個Winform項目,在主窗口代碼里這樣寫:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.TopMost = true;
SetWindowLong(this.Handle, GWL_EXSTYLE, WS_EX_LAYERED);
SetLayeredWindowAttributes(this.Handle, 65280, 255, LWA_COLORKEY);
}
private const uint WS_EX_LAYERED = 0x80000;
private const int GWL_EXSTYLE = -20;
private const int LWA_COLORKEY = 1;
[DllImport("user32", EntryPoint = "SetWindowLong")]
private static extern uint SetWindowLong(IntPtr hwnd,int nIndex,uint dwNewLong);
[DllImport("user32", EntryPoint = "SetLayeredWindowAttributes")]
private static extern int SetLayeredWindowAttributes(IntPtr hwnd,int crKey,int bAlpha,int dwFlags);
}

  先使用SetWindowLong將窗口定義為分層窗體,然后調(diào)用SetLayeredWindowAttributes方法設(shè)置透明。

  其中第二個參數(shù)crKey為一個int型的顏色值,轉(zhuǎn)換方式為(int)(0xRRGGBB),本例中Dec(0x00FF00)=65280為綠色。

  第四個參數(shù)為透明方式,本例中使用LWA_COLORKEY = 1,表示將該窗口顏色為crKey的部分都設(shè)置為透明。

  因此相應(yīng)地,我們需要在窗口設(shè)計器中畫一個顏色為綠色的方塊。本例中使用了一個PictureBox,并設(shè)置了背景顏色。

   F5運行,效果如圖:

   能想到的用處之一就是,包裝幾個不相關(guān)的外部程序為一個整體.

上一篇:C#環(huán)形隊列的實現(xiàn)方法詳解

欄    目:C#教程

下一篇:C#檢查foreach判讀是否為null的方法

本文標(biāo)題:Winform實現(xiàn)鼠標(biāo)可穿透的窗體鏤空效果

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6237.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有