寫在前面
這是PB案例學習筆記系列文章的第27篇,該系列文章適合具有一定PB基礎的讀者。
通過一個個由淺入深的編程實戰案例學習,提高編程技巧,以保證小伙伴們能應付公司的各種開發需求。
文章中設計到的源碼,小凡都上傳到了gitee代碼倉庫https://gitee.com/xiezhr/pb-project-example.git
需要源代碼的小伙伴們可以自行下載查看,后續文章涉及到的案例代碼也都會提交到這個倉庫【pb-project-example】
如果對小伙伴有所幫助,希望能給一個小星星?支持一下小凡。
一、小目標
通過本案例我們將制作一個能夠隱藏任務欄和顯示任務欄的小程序。最終效果如下所示
二、創作思路
Windwos
操作系統的任務欄是以Shell_TrayWnd
為名稱的窗口對象,利用user32.dll
提供的FindWindowExA
外部擴展函數
可以獲取任務欄的句柄,在利用外部函數ShowWindow
外部擴展函數就可以控制任務欄的隱藏和顯示。
三、創建程序基本框架
① 新建examplework
工作區
② 新建exampleapp
應用
③ 新建w_main
窗口,并將其Title
設置為“隱藏和顯示任務欄”
由于文章篇幅原因,以上步驟不再贅述。如果小伙伴忘記怎么操作,可以翻一翻該系列第一篇文章復習一下
④ 布局控件
在w_main
窗口上新建2個CommandButton
控件,名稱依次為cb_1
和cb_2
.其Text
值分別為"隱藏任務欄"和“顯示任務欄”
調整位置,使其布局如下圖所示
⑤ 保存窗口
四、編寫代碼
① 定義實例變量
Constant Long SW_HIDE = 0
Constant Long SW_NORMAL = 1
Constant Long SW_SHOWMINIMIZED = 2
Constant Long SW_SHOWMAXIMIZED = 3
Constant Long SW_SHOWNOACTIVATE = 4
Constant Long SW_SHOW = 5
Constant Long SW_MINIMIZE = 6
Constant Long SW_SHOWMINNOACTIVE = 7
Constant Long SW_SHOWNA = 8
Constant Long SW_RESTORE = 9
Constant Long SW_SHOWDEFAULT = 10 String ls_ShellTaskBarWnd = "Shell_TrayWnd"
String ls_nullLong ll_HTaskBar, ll_HDeskTop
② 定義外部函數
//獲取窗口句柄
Function long FindWindowExA ( long hWnd, long hWndChild, ref string lpszClassName, ref string lpszWindow) library 'user32'
//根據窗口句柄設置任務欄狀態
Function long ShowWindow (long hWnd, long nCmdShow ) library 'user32'
③ 在按鈕cb_1
的clicked
事件中添加如下代碼
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_HIDE )
MessageBox( '提示', '任務欄不見了!' )
④ 在按鈕cb_2
的clicked
事件中添加如下代碼
ll_HTaskBar = FindWindowExA( 0, 0, ls_ShellTaskBarWnd, ls_Null )
ShowWindow( ll_HTaskBar, SW_SHOW )
MessageBox( '提示', '任務欄又出現了!' )
⑤ 在開發界面左邊的System Tree
窗口中雙擊exampleapp
應用對象,并在其open
事件中添加如下代碼
open(w_main)
五、運行程序
經過一波操作,我們來檢驗下最終的勞動成果
本期內容到這兒就結束了 ★,°:.☆( ̄▽ ̄)/$:.°★ 。 希望對您有所幫助
我們下期再見 ヾ(?ω?`)o (●’?’●)