Delphi隱藏工作列

2021-04-13 02:13:27 字數 2797 閱讀 8960

delphi中如何控制windows工作列的顯示

吳淑華為了更有效地利用顯示器的空間,多數程式設計師都有過這樣的經驗,即通過windows工作列屬性對話方塊,在「工作列選項」頁中將工作列設定為「自動隱藏」,並且為了在需要工作列時操作方便,選擇工作列「總在最前」。完成上述設定後,當程式設計師編輯文件或編寫**時,工作列會自動隱藏,增加了顯示器的可利用空間;而當程式設計師需要操作工作列時,只需將滑鼠移動到工作列所在位置的顯示器邊緣上,這時工作列就會自動出現。但如果工作列沒有設定成「總在最前」,此時工作列就不會自動彈出。

要控制windows工作列的隱藏和顯示,可以通過呼叫一組api函式來實現。這組api函式分別是:

(1) findwindow函式

該函式通過指定的類名和視窗名來檢索指定的高層視窗控制代碼,如果檢索成功,則返回視窗控制代碼,否則返回空;另外,需注意改函式不能用於查詢子視窗。函式如下:

hwnd findwindow(lpctstr lpclassname, //類名指標

lpctstr lpwindowname //視窗名指標

); (2) showwindow函式

該函式用於設定指定視窗的顯示狀態。函式如下:

bool showwindow(hwnd hwnd, //指定視窗的控制代碼

int ncmdshow //指定視窗的顯示狀態,可以設定為sw_hide,sw_show等

); (3) setwindowpos函式

該函式用於設定指定視窗的大小、顯示位置和顯示順序等資訊。函式如下:

bool setwindowpos(

hwnd hwnd, // 指定視窗的控制代碼

hwnd hwndinsertafter, // 指定視窗的顯示順序,可以設為如下一組值:hwnd_bottom、hwnd_notopmost、hwnd_top、hwnd_topmost

int x, // 指定視窗的橫座標位置

int y, // 指定視窗的縱座標位置

int cx, // 指定視窗的寬度

int cy, // 指定視窗的長度

uint uflags // 指定視窗的尺寸和位置標記,可以取一組值或這些值的組合

); 下面本文以乙個具體的例子,詳細介紹一下在delphi 5.0中實現windows工作列顯示和隱藏的步驟。

1. 建立乙個應用程式,在主窗體上增加二個tbutton元件和乙個tcheckbox元件。設定其中乙個tbutton元件的caption屬性為「隱藏windows的工作列」,設定另乙個tbutton元件的caption屬性為「顯示windows的工作列」,設定tcheckbox元件的caption屬性為「總在最前」。

2. 編輯tform1.button1click(sender: tobject)

隱藏windows的工作列,**如下:

procedure tform1.button1click(sender: tobject);

var

wndhandle: thandle; //用於儲存指定視窗的控制代碼

wndclass: array[0..50] of char; //用於儲存類名

begin

strpcopy(@wndclass[0], 'shell_traywnd'); //獲取工作列類名

wndhandle := findwindow(@wndclass[0],nil); //獲取工作列視窗的控制代碼

showwindow(wndhandle, sw_hide); //隱藏windows工作列

button2.enabled := true; //設定「顯示windows工作列」按鈕變為可操作狀態

button1.enabled := false; //設定「隱藏windows工作列」按鈕變為不可操作狀態

end;

3. 編輯tform1.button2click(sender: tobject)

顯示windows的工作列,並判斷「總在最前」tcheckbox元件是否選中,如果選中,則工作列總是顯示在最前方,否則工作列顯示在最底層。**如下:

procedure tform1.button2click(sender: tobject);

var

wndhandle: thandle;

wndclass: array[0..50] of char;

begin

strpcopy(@wndclass[0], 'shell_traywnd');

wndhandle := findwindow(@wndclass[0],nil);

showwindow(wndhandle, sw_show); //顯示windows的工作列

//判斷「總在最前」核取方塊是否選中

if checkbox1.checked then //如果選中,則設定工作列為最頂層視窗

setwindowpos(wndhandle, hwnd_topmost, r.top, r.left, r.bottom, r.right, swp_nomove)

else //否則,設定工作列為最底層視窗

setwindowpos(wndhandle, hwnd_bottom, r.top, r.left, r.bottom, r.right, swp_nomove);

//設定按鈕的操作狀態

button2.enabled := false;

button1.enabled := true;

end;

4. 開啟windows工作列屬性對話方塊,不選中「自動隱藏」和「總在最前」兩個核取方塊,並確定後關閉該對話方塊。執行上述建立的應用程式,即可控制windows工作列的顯示和隱藏

隱藏工作列

我有乙個隱藏工作列的程式,你看看你是否用得著。mobile sdk6410下的控制台程式 由於工作列擋住了我要用的除錯工具,所以要關掉,等我不要,在開啟。如果你想一直開啟,下面的 稍微改一下就能實現了。include include int tmain int argc,tchar argv whi...

如何隱藏工作列

有木有,不想讓老總直接看到你電腦下方執行的qq,msn,或是遊戲頁面?有木有,不想因為自己的工作需求而扼殺自己的 愛好?有木有,不想讓過多不相干的人直接目測到你電腦下方執行的各大程式?ok。1 滑鼠右鍵單擊工作列 選擇屬性 2 設定如下圖 3 即可自動隱藏工作列。哈哈 如何全屏截圖 1 找到鍵盤上左...

WM隱藏 顯示工作列

如下 using system.runtime.interopservices const uint shfs showtaskbar 0x0001 const uint shfs hidetaskbar 0x0002 const uint shfs showsipbutton 0x0004 con...