タスクトレイ格納型プログラム
2006年11月25日(土) 20:15 JST
閲覧数 6,473
タスクトレイに格納されたプログラムの作成。
久々にプログラム作ろうと思ってみて、せっかくなのでタスクトレイ格納型にしたいと思ったので、やり方を調べてみたメモ。
内容は、Shell_NotifyIcon()使えばイイだけ。これを使ってトレイ内のアイコンを変えてみたり~。
とりあえず、プログラム初期化部分に以下のコードを埋め込み完了。
あと、ウィンドウが無いので、プログラムを終了するために、ポップアップメニューを追加しないと。。。プログラムが終了できない。。。
ちなみにメニュー箇所は、こんな感じにしてみた。
とりあえず、ポップアップメニューまで追加したタスクトレイ格納型の雛形。
プログラムはVC++6.0で作成。
TaskTray.zip
久々にプログラム作ろうと思ってみて、せっかくなのでタスクトレイ格納型にしたいと思ったので、やり方を調べてみたメモ。
内容は、Shell_NotifyIcon()使えばイイだけ。これを使ってトレイ内のアイコンを変えてみたり~。
とりあえず、プログラム初期化部分に以下のコードを埋め込み完了。
nidNoftyIconData.cbSize = sizeof(NOTIFYICONDATA); nidNoftyIconData.hWnd = hwnd; nidNoftyIconData.uID = 1; nidNoftyIconData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; nidNoftyIconData.uCallbackMessage = WM_USER + 1; nidNoftyIconData.hIcon = LoadIcon(hCurInst, MAKEINTRESOURCE(IDI_ICON)); strcpy(nidNoftyIconData.szTip, APP_DESCRIPTION); Shell_NotifyIcon( NIM_ADD, &nidNoftyIconData );
あと、ウィンドウが無いので、プログラムを終了するために、ポップアップメニューを追加しないと。。。プログラムが終了できない。。。
ちなみにメニュー箇所は、こんな感じにしてみた。
case (WM_USER + 1): //アイコンからのメッセージ処理 if( lParam == WM_RBUTTONDOWN ){ // マウス右押し GetCursorPos( &pt ); hMenuPop = CreatePopupMenu(); AppendMenu( hMenuPop, MF_BYCOMMAND | MF_STRING, IDR_EXIT, TEXT("Exit(&X)") ); SetForegroundWindow( hwnd ); TrackPopupMenu( hMenuPop, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hwnd, NULL ); if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } DestroyMenu( hMenuPop ); }
とりあえず、ポップアップメニューまで追加したタスクトレイ格納型の雛形。
プログラムはVC++6.0で作成。
TaskTray.zip