首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Borland C++ Builder 5.0 TrayIcon 元件完整教學:零程式碼實作系統匣圖示

     編輯:關於C語言

前言

在 Borland C++ Builder 5.0 完整安裝後,Samples 元件頁提供 TrayIcon 元件,封裝系統匣所需的 Windows API,無需撰寫程式碼即可快速建立系統匣應用程式。

TrayIcon 常用屬性表

屬性說明
Animate設為 true 時,依 Icons 循序切換圖示產生動畫效果
AnimateInterval圖示切換間隔(毫秒)
Hidetrue 時最小化隱藏工作列標題列
Hint滑鼠游標停留時顯示的提示文字
IconIndex當前顯示圖示索引
Icons圖示來源(通常指定 ImageList 元件)
PopupMenu右鍵彈出選單(指定 PopupMenu 元件)
PopupMenuOn觸發彈出選單的滑鼠動作
RestoreOn還原視窗的滑鼠動作
Visibletrue 時在工作列右側顯示圖示

滑鼠動作常數對照

常數說明
imClick單擊
imDoubleClick雙擊
imLeftClickUp左鍵單擊放開
imLeftDoubleClick左鍵雙擊
imMouseDown按下滑鼠鍵
imMouseUp按下並放開
imNone無動作
imRightClickUp右鍵單擊放開
imRightDoubleClick右鍵雙擊

快速建立範例程式

  1. 新建專案,放入 TrayIcon、PopupMenu、ImageList 三個元件,保留預設名稱。
  2. 設定 TrayIcon1 屬性:
屬性值
Animatetrue
AnimateInterval1000
Hidetrue
HintTray示範程式
IconIndex0
IconsImageList1
PopupMenuPopupMenu1
PopupMenuOnimRightClickUp
RestoreOnimDoubleClick
Visibletrue
  1. 雙擊 PopupMenu1 設計選單項目。
  2. 雙擊 ImageList1 匯入 .ico 或 .bmp 圖片。
  3. 按 F9 編譯執行:滑鼠移至圖示顯示提示、右鍵彈出選單、最小化隱藏工作列、雙擊還原、圖示每秒切換一次。

進階:直接使用 Shell_NotifyIcon API

若不使用元件,可直接呼叫 Shell_NotifyIcon():

#define WM_NOTIFYICON WM_USER + 5

BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_NOTIFYICON, TMessage, NotifyIcon)
END_MESSAGE_MAP(TForm)

void __fastcall TMainForm::NotifyIcon(TMessage msg)
{
    POINT MousePos;
    switch (msg.LParam) {
    case WM_RBUTTONUP:
        // 顯示右鍵選單
        break;
    }
}

void __fastcall TMainForm::TrayMessage(DWORD dwMessage)
{
    NOTIFYICONDATA tnd;
    tnd.cbSize = sizeof(NOTIFYICONDATA);
    tnd.hWnd = Handle;
    tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
    tnd.uCallbackMessage = WM_NOTIFYICON;
    tnd.hIcon = myIcon->Handle;
    lstrcpyn(tnd.szTip, "my TrayIcon", sizeof(tnd.szTip));
    return Shell_NotifyIcon(dwMessage, &tnd);
}

完整範例原始碼位於安裝目錄 CBuilder5\Examples\Apps\TrayIcon;純 API 版本參考 CBuilder5\Examples\Controls\Traydemo。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved