サイト内検索:

タスクトレイに格納(VC)

2010年01月23日更新
お気に入りに登録
VBVCJava開発室 > プログラミング > ウィンドウ処理 > タスクトレイに格納(VC)
ウィンドウ処理
  1. doc位置の保存・復元(VB)
  2. doc位置の保存・復元(VC)
  3. docタスクトレイに格納(VB)
  4. docタスクトレイに格納(VC)
  5. doc半透明ウインドウ(VB)
  6. doc半透明ウインドウ(VC)
  7. doc最前面に表示
メインメニュー
  1. docプログラミング
  2. docサーバ構築
  3. docお薦めの技術書籍/参考書
  4. docパソコンショップ
  5. docサーバーショップ
  6. doc周辺機器
  7. docモニター
  8. doc外部媒体
  9. doc自作パソコン用パーツ
  10. doc契約
  11. doc就職・転職・バイト情報

◆説明◆

常駐アプリによくある、タスクトレイに格納するサンプルです。詳細は、サンプルソースをダウンロードし、確認して下さい。


◆VC++(MFC)の場合◆

// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 0. ウインドウクラスのヘッダ(〜Dlg.h等)で、以下の★の
// 箇所を定義する。
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// ★★★ タスクトレイクリック用ウインドウメッセージID
#define WM_TASKTRAYCLICK WM_APP + 1

class CTaskTrayDlg : public CDialog
{
public:
CTaskTrayDlg(CWnd* pParent = NULL);
enum { IDD = IDD_TASKTRAY_DIALOG };
//{{AFX_VIRTUAL(CTaskTrayDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
protected:
HICON m_hIcon;
//{{AFX_MSG(CTaskTrayDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnTaskTray();
afx_msg void OnDestroy();
//}}AFX_MSG
// ★★★ タスクトレイクリック用メッセージマップ関数
afx_msg void OnTaskTrayClick(
WPARAM wParam, LPARAM lParam);
DECLARE_MESSAGE_MAP()
private:
// ★★★ タスクトレイアイコンのオブジェクト
NOTIFYICONDATA m_objTaskTrayIcon;
};

// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 1. タスクトレイにアイコンを表示
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
BOOL CTaskTrayDlg::OnInitDialog()
{
CDialog::OnInitDialog();

SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定

// ★★★ タスクトレイのアイコンを定義
m_objTaskTrayIcon.cbSize = sizeof(m_objTaskTrayIcon);
m_objTaskTrayIcon.hWnd = this->m_hWnd;
m_objTaskTrayIcon.hIcon = this->GetIcon(false);
m_objTaskTrayIcon.uID = 1;
m_objTaskTrayIcon.uFlags
= NIF_ICON | NIF_MESSAGE | NIF_TIP;
m_objTaskTrayIcon.uCallbackMessage = WM_TASKTRAYCLICK;
strcpy(m_objTaskTrayIcon.szTip, "テスト1");

// ★★★タスクトレイにアイコン表示
Shell_NotifyIcon(NIM_ADD, &m_objTaskTrayIcon);

return TRUE;
}

// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 2. タスクトレイアイコンイベント処理
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
void CTaskTrayDlg::OnTaskTrayClick(
WPARAM wParam, LPARAM lParam)
{
switch (lParam)
{
//左クリック
case WM_LBUTTONDOWN: // マウスダウン
break;
case WM_LBUTTONUP: // マウスアップ
break;
case WM_LBUTTONDBLCLK: // ダブルクリック
this->ShowWindow(1); // ウィンドウ表示
break;
//右クリック
case WM_RBUTTONDOWN: // マウスダウン
break;
case WM_RBUTTONUP: // マウスアップ
break;
case WM_RBUTTONDBLCLK: // ダブルクリック
break;
}
}

// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
// 3. タスクトレイのアイコンを消去
// 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
void CTaskTrayDlg::OnDestroy()
{
CDialog::OnDestroy();

// ★★★ タスクトレイのアイコン消去
Shell_NotifyIcon(NIM_DELETE, &m_objTaskTrayIcon);
}


◆VBの場合◆


    お気に入りに登録