タスクトレイのアイコンを左クリックしたときにダイアログを表示するには?

解決


ヤマオー  2006-12-03 23:28:14  No: 63799  IP: 192.*.*.*

はじめまして。
ヤマオーといいます。

VC6.0 MFCのダイアログベースで開発中です。

起動時タスクトレイにアイコンを表示し、
ダイアログは非表示という状態です。

タスクトレイのアイコンを左クリックしたときに
ダイアログを表示したいのですが、うまくいきません。

左クリックのイベントは取得できるのですが、
ダイアログが表示できず、
右クリックしたときポップアップメニューが表示
されるときにダイアログが表示されてしまいます。

なぜでしょうか?

以下ソース
 OnWindowPosChanging(WINDOWPOS * lpwndpos)
 {
   lpwndpos->flags &= ~SWP_SHOWWINDOW;

   左クリックしたとき
   lpwndpos->flags |= SWP_SHOWWINDOW;
   その他
   lpwndpos->flags |= SWP_HIDEWINDOW;

   CDialog::OnWindowPosChanging(lpwndpos);
 }
 
宜しくお願いします。

編集 削除
RAPT  2006-12-06 00:40:03  No: 63800  IP: 192.*.*.*

なぜ OnWindowPosChanging で処理しているのか分かりませんが、
普通に、ShowWindow() で SW_SHOW すればいいだけかと。

編集 削除
ヤマオー  2006-12-06 11:39:03  No: 63801  IP: 192.*.*.*

RAPTさん御指摘ありがとうございました。

ダイアログベースだとShowWindowが効かないと
見たことがあったので、確認していませんでした。

ShowWindowで実現できました。
ありがとうございます。

編集 削除