日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

巧用句柄函数:闪烁窗体,做提示功能时很有用哦

發布時間:2024/4/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巧用句柄函数:闪烁窗体,做提示功能时很有用哦 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  今天再給大家分享一個小程序!

  大家都知道、在一個Dialog窗體顯示后、如果不關閉這個Dialog窗體、直接點擊該程序別的功能、那么這個Dialog窗體就會閃動一下、并且有一個提示聲音、表示當前的窗體不關閉、將不能使用該程序的其他功能、

  那么、我們想一下、閃爍窗體的功能只能用在Dialog窗體上面么?

  我們能不能把閃爍窗體的功能提取出來、加在我們想用來提示的窗體上面?

  答案:當然可以、、、OK、開始步入正題、、、、

  新建WinForm項目、命名為“ShanFormWithAPI”、

  在默認的窗體上拖放三個Button按鈕,分別命名為:“btn_start_once”(閃爍一下)、“btn_start”(開始閃爍)、“btn_stop”(停止閃爍)、

  在拖放一個Timer、用來實現不停閃爍的效果、Timer控件命名為:“timer_shan”、Interval設置為50(自己可以根據需求設置)、Enable設置為false(不讓自動開始)、

?

  按下F7進入當前窗體的后置代碼、引用以下命名空間:

需要引入的命名空間 1 using System; 2 using System.Windows.Forms; 3 using System.Media; 4 using System.Runtime.InteropServices;

?

  然后、在當前窗體后置代碼類中(默認無參構造外)引用系統API函數、用來閃爍窗體用的,代碼如下:

引用系統API后的局部代碼 1 using System; 2 using System.Windows.Forms; 3 using System.Media; 4 using System.Runtime.InteropServices; 5 6 namespace ShanFormWithAPI 7 { 8 public partial class frmMain : Form 9 { 10    //handle:表示將要閃爍的窗體;bInvert:是否恢復狀態。 11 [DllImportAttribute("user32.dll")] 12 public static extern bool FlashWindow(IntPtr handle, bool bInvert); 13 14    //默認的無參構造 15    public frmMain() 16 { 17 InitializeComponent(); 18 } 19 } 20 }


  按下Shift+F7、回到窗體的設計界面、分別雙擊三個按鈕、為其添加事件效果、最后完整的代碼如下:

完整的窗體(frmMain)的后置代碼 1 using System; 2 using System.Windows.Forms; 3 using System.Media; 4 using System.Runtime.InteropServices; 5 6 namespace ShanFormWithAPI 7 { 8 public partial class frmMain : Form 9 { 10 [DllImportAttribute("user32.dll")] 11 public static extern bool FlashWindow(IntPtr handle, bool bInvert); //handle:表示將要閃爍的窗體;bInvert:是否恢復狀態。 12 13 //默認的無參構造 14 public frmMain() 15 { 16 InitializeComponent(); 17 } 18 19 //“開始閃爍”按鈕的事件 20 private void btn_start_Click(object sender, EventArgs e) 21 { 22 SystemSounds.Asterisk.Play(); 23 24 this.timer_shan.Start(); 25 } 26 27 //“停止閃爍”按鈕的事件 28 private void btn_stop_Click(object sender, EventArgs e) 29 { 30 this.timer_shan.Stop(); 31 } 32 33 //“閃一下”按鈕的事件 34 private void btn_start_once_Click(object sender, EventArgs e) 35 { 36 FlashWindow(this.Handle, true); 37 38 SystemSounds.Asterisk.Play(); 39 } 40 41 //用來不停閃爍窗體的Timer的事件 42 private void timer_shan_Tick(object sender, EventArgs e) 43 { 44 FlashWindow(this.Handle, true); 45 } 46 } 47 }


  好了、運行一下看看效果吧、、、

  至此、這個小程序就寫完了、感謝您的光臨與支持!

?

【原來來自:HackerGuying的博客:http://www.cnblogs.com/HackerGuying】

???

轉載于:https://www.cnblogs.com/HackerGuying/archive/2013/04/12/3017059.html

總結

以上是生活随笔為你收集整理的巧用句柄函数:闪烁窗体,做提示功能时很有用哦的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。