工作列程式 01

2021-03-31 08:57:00 字數 1284 閱讀 4179

這裡的人氣真是不旺啊,我來添一把柴,希望能夠帶動大家的程式設計熱情。這是我第一次寫教程,不足之處大家多包涵。打算分兩次寫成乙個列於桌面右側的sidebar(中文名不知道叫什麼,好像應該算是工作列,因為主要靈感來自於desktop sidebar)程式,可以從網上讀取天氣預報,可以顯示當前的時鐘等基本功能(你可以加入自己的功能)。我的程式設計環境是windows 2003 + delphi 7,其他版本的delphi和windows我想都是沒有問題的,演示請看附件。我想讀者應該會一點delphi,分兩次主要是照顧一些初學者。ok, let's go!

//-----------正文開始-------------------

不知到大家注意到沒有?其實桌面(desktop)和form1一樣都是窗體(window),區別在於桌面是在所有視窗的後面,我們完全可以是使我們自己的窗體具有這種性質。

procedure tform1.formcreate(sender: tobject);

varhdesktop:thandle;

begin

hdesktop:=findwindow('progman', 'program manager');

windows.setparent(handle,hdesktop);

end;

按照上面的**試一試,看看win+d會不會讓這個form1窗體最小化到工作列?答案當然是否定的,因為它已經具有了和桌面一樣的屬性。這就是這次教程的技巧之一。

sidebar應當靠在桌面的右邊或者其他什麼地方,這在delphi裡是十分簡單的。在object inspector中設定form1的borderstyle為bsnone;width為195;在formcreate中加入如下:

procedure tform1.formcreate(sender: tobject);

varhdesktop:thandle;

r: trect;

begin

r:= screen.desktoprect;  //讀取桌面解析度

self.top := 0;

self.left := r.right-r.left-self.width ; //靠右側

self.height :=  r.bottom-r.top;          //與桌面等高

hdesktop:=findwindow('progman', 'program manager');

windows.setparent(handle,hdesktop);

end;

就會建立乙個靠右側的sidebar(退出時按alt+f2),很好玩吧。這次就到這裡,下次再見。

工作列顯示程式詳解

1 無論什麼情況,要讓乙個視窗在工作列上顯示按鈕的前提是該視窗是可見的。2 如果乙個視窗是頂級視窗 也就是父視窗為null,也就是父視窗為桌面視窗 那麼windows將為它在工作列上建立乙個按鈕。有例外,見4 工作列隱藏圖示 方法一 方法二 先建立乙個隱藏窗體,再以這個隱藏窗體為父窗體建立視窗。另外...

隱藏工作列

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

工作列托盤

要實現系統托盤,就要認識notifyicondata結構體,如下 typedef struct notifyicondata tchar szinfotitle 64 指向乙個以 0結束的字串的指標。字串的內容為氣球提示的標題 dword dwinfoflags 設定此成員用來給氣球提示框增加乙個圖...