系統托盤編程

 【寫於大二寒假無聊的一天】

這兩天想寫個小程序,一個圖標在系統托盤上的小程序,於是查了一晚上MSDN,在此作一個小小的總結。

平臺:Microsoft Visual Studio 2005

類庫:.NET Framework 2.0 Windows Form

語言:C++/CLI

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

我們知道,寫一個Windows Form程序,主要就是寫一個自己的Form類,不妨取名爲MyForm,繼承於類庫中的Form類。

public ref class MyForm : public System::Windows::Forms::Form

{

}

 

接下來,主要說明一下關於系統托盤的幾個控件的導入和編寫(其他的按鈕等不再說明)。

首先,爲了不在任務欄上看到程序的標籤,我們先把該標籤隱藏。(沒有特別說明,下面所有的語句都加入到MyForm的初始化函數中)

this->ShowInTaskbar = false;

 

然後再來添加系統托盤上的圖標。系統托盤圖標的空間名爲NofityIcon,我們在MyForm類中添加一個私有成員,命名爲 notifyIcon1

private: System::Windows::Forms::NotifyIcon^  notifyIcon1;

 

只是這樣還不能顯示圖標,我們還需要給程序加載一個系統托盤圖標。

this->notifyIcon1->Icon = (cli::safe_cast<System::Drawing::Icon^>(resources->GetObject(L"notifyIcon1.Icon")));

 

然後我們可以通過notifyIcon1的成員屬性Visible來控制是否顯示圖標。如果顯示:

this->notifyIcon1->Visible = true;

 

當我們把鼠標移動到圖標上時,可以出現浮動框。如果只是出現靜態文字。我們只需簡單的設置notifyIcon1Text屬性。

this->notifyIcon1->Text = “這裏爲要顯示的文字”;

 

如果要顯示更爲詳細的信息,我們可以通過設置BalloonTipIconBalloonTipTextBalloonTipTitle屬性來控制。再調用ShowBalloonTip方法來顯示。

如果要動態顯示,我們可以爲上述的幾個屬性和方法寫成一個事件,各屬性值爲隨時取得的所需值。這裏不作詳細討論。

 

基本功能實現了,現在我們需要右鍵單擊圖標時,出現一個快捷菜單,這個是程序中常用的功能。

首先,我們建立一個快捷菜單,比如叫ctMenu,作爲MyForm的私有成員。

private: System::Windows::Forms::ContextMenuStrip^  ctMenu;

 

然後我們爲notifyIcon1加載該菜單。

this->notifyIcon1->ContextMenuStrip = this->ctMenu;

 

接下來就是完成這個快捷菜單。這裏說下最基本的操作,就是添加菜單。比如我們要添加三個一級菜單。

首先是建立三個菜單。

private: System::Windows::Forms::ToolStripMenuItem^  菜單1;

private: System::Windows::Forms::ToolStripMenuItem^  菜單2;

private: System::Windows::Forms::ToolStripMenuItem^  菜單3;

 

然後我們加載這些菜單。

this->ctMenu->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(3) {this->菜單1, this->菜單2, this->菜單3});

 

如果我們 [菜單1] 還有兩個二級菜單。我們可以這麼做,先定義兩個菜單。

private: System::Windows::Forms::ToolStripMenuItem^  菜單11;

private: System::Windows::Forms::ToolStripMenuItem^  菜單12;

 

然後在加載到菜單1上面。

this->菜單1->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(2) {this->菜單11, this->菜單12});

 

這些是Windows Form中寫系統托盤程序的主要方法,當然要完善這個程序,還是要做很多工作的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章