• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 論文大全 > 學科論文 > 計算機論文 > 淺析系統托盤的編程計算機論文

    淺析系統托盤的編程計算機論文

    時間: 謝樺657 分享

    淺析系統托盤的編程計算機論文

      系統托盤是個特殊區域,通常在桌面的底部,在那里,用戶可以隨時訪問正在運行中的那些程序。在微軟的Windows里,系統托盤常指任務欄的狀態區域;在Gnome的桌面時,常指布告欄區域;在KDE桌面時,指系統托盤。在每個系統里,托盤是所有正運行在桌面環境里的應用程序共享的區域。以下是學習啦小編今天為大家精心準備的:淺析系統托盤的編程計算機相關論文,內容僅供參考,歡迎閱讀!

      淺析系統托盤的編程計算機全文如下:

      托盤消息處理:

      在Shell32.DLL動態鏈接庫中包括一個函數Shell_NotifyIconA()可通知Windows在任務條右下角加入一個小圖標,可惜該函數的詳細說明未收入Delphi的幫助文檔中。現將實現例程示范如下:

      unit pro2;

      interface

      uses

      。。。, Menus,shellAPI; //TNotifyIconData是定義在shellAPI單元的

      {自定義消息,當小圖標捕捉到鼠標事件時Windows向回調函數發送此消息}

      const WM_MYTRAYICONCALLBACK = WM_USER + 1000 ;

      。。。。

      private

      MyTrayIcon : TNotifyIconData ;

      procedure WMMyTrayIconCallBack(Var Msg : TMessage); message WM_MYTRAYICONCALLBACK ;

      //托盤消息處理過程

      procedure WMCommand(Var msg : TWMCommand); message WM_Command;

      //處理托盤圖標的右鍵菜單事件

      procedure Minimize(var mess:TWMNCLBUTTONDOWN); message WM_NCLBUTTONDOWN;

      //窗體最小化時的消息處理

      。。。。。。。。

      procedure TForm1.FormCreate(Sender: TObject);

      begin

      //將程序窗口樣式設為TOOL窗口,避免在任務欄上出現

      SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

      end;

      procedure TForm1.FormShow(Sender: TObject);

      begin

      //設置托盤

      Icon.Handle := LoadIcon(Hinstance,'MAINICON');

      MyTrayIcon.cbSize := SizeOf(TNotifyIconData);// nid變量的字節數

      MyTrayIcon.Wnd := Handle ;// 主窗口句柄

      MyTrayIcon.uID := 1 ;// 內部標識,可設為任意數

      MyTrayIcon.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE ;// 指明哪些字段有效

      MyTrayIcon.uCallBackMessage := WM_MYTRAYICONCALLBACK ;//回調函數消息,將自定義托盤消息傳遞進去

      MyTrayIcon.hIcon := Application.Icon.Handle; // 要加入的圖標句柄,可任意指定

      StrCopy(MyTrayIcon.szTip, PChar(Caption));

      Shell_NotifyIcon(NIM_ADD,@MyTrayIcon);

      ShowWindow(Handle,sw_Hide);

      // Visible := False ;//當程序啟動時就最小化在托盤區即Form.Create時啟用此語句

      Application.ShowMainForm := False ;

      SetForegroundWindow(Application.Handle);

      end;

      ////消息過程實現

      procedure TForm1.WMMyTrayIconCallBack(var Msg: TMessage);

      var CursorPos : TPoint;

      begin

      case Msg.LParam of

      WM_LBUTTONDBLCLK : //雙擊消息:彈出主窗口

      begin

      Visible := not Visible ;

      Application.ShowMainForm := Visible ;

      SetForegroundWindow(Application.Handle);

      end ;

      WM_RBUTTONDOWN : //鼠標右鍵:彈出菜單

      begin

      GetCursorPos(CursorPos);

      { Popupmenu1.Popup(CursorPos.X,CursorPos.Y);

      popupmen1里面就可以加入顯示主窗口、退出等功能。這個右鍵菜單可以是靜態的,如上面一句來彈出;也可以動態建立,如下面所示的方法:}

      pm := createpopupmenu;//建立一個Hmenu,pm:hmenu;

      AppendMenu(pm,0,ord('A'),'關于....');//在指定的菜單里添加一個菜單項

      AppendMenu(pm,0,Ord('B'),'&Exit');

      //加入菜單事件---》處理WMCOMMAND消息即可

      TrackPopupMenu(pm,Tpm_BottomAlign or Tpm_RightAlign, CursorPos.x, CursorPos.y, 0,handle,nil);

      //在圖標上方顯示該彈出式菜單

      end ;

      end ;

      end;

      procedure TForm1.WMCommand(var msg : TWMCommand);

      begin

      Case msg.ItemID of

      Ord('A') : showmessage('我的右鍵菜單!');

      Ord('B') : Self.close;//關閉程序主窗體

      else inherited;

      end;

      end;

      procedure Tform1.Minimize(var mess:TWMNCLBUTTONDOWN);//應用程序最小化消息處理

      begin

      if Mess.Hittest = htReduce then

      Self.Hide

      else inherited;

      end;

      procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

      var {程序被關閉時通知Windows去掉小圖標}

      nid: TNotifyIconData;

      begin

      nid.cbSize := sizeof(nid); // nid變量的字節數

      nid.uID := 1; //內部標識,與加入小圖標時的數一致

      nid.Wnd := Handle; //主窗口句柄

      Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小圖標

      end;

    391992 主站蜘蛛池模板: 亚洲aⅴ男人的天堂在线观看| 又硬又粗又长又爽免费看| 久久激情综合网| 亚洲AV之男人的天堂| 一个人看的视频在线| 激情小说在线播放| 国产精品永久在线观看| 国产四虎免费精品视频| 慧静和一群狼好爽| 波多野吉衣一区二区| 黄网在线免费观看| 一区二区三区观看| 五月天婷婷丁香| 免费看日b视频| 国产剧情AV麻豆香蕉精品| 国内精品第一页| 恋恋视频2mm极品写真| 欧美人与动人物姣配xxxx| 精品人妻无码专区在中文字幕 | 国产午夜精品理论片| 国产美女无遮挡免费网站| 好吊妞视频在线观看| 无码视频免费一区二三区| 日韩网新片免费| 欧美国产成人精品一区二区三区| 精品亚洲成A人在线观看青青| 韩国日本一区二区| 人人澡人人澡人人澡| 99久久免费中文字幕精品| 三年片免费观看大全国语| 北条麻妃一本到高清在线观看| 国产综合第一页| 日本乱理伦片在线观看网址| 日本理论片午夜论片 | 亚洲国产欧美日韩精品一区二区三区| 龙珠全彩里番acg同人本子| 日本三级香港三级人妇99视| 免费国产a国产片高清网站| 天天视频天天爽| 性高朝久久久久久久3小时| 亚洲日本一区二区三区在线|