「MFCの基礎 - 常駐ソフトウェア」の版間の差分

ナビゲーションに移動 検索に移動
 
147行目: 147行目:
イベントの応答処理は、早く処理を完了させる必要があるため、イベントに応じて、ウィンドウメッセージをポストする。<br>
イベントの応答処理は、早く処理を完了させる必要があるため、イベントに応じて、ウィンドウメッセージをポストする。<br>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
// TrayWnd.cpp
  LRESULT CTrayWnd::OnTrayNotify(UINT wParam, LONG lParam)
  LRESULT CTrayWnd::OnTrayNotify(UINT wParam, LONG lParam)
  {
  {
157行目: 159行目:
     }
     }
   
   
     // ここで模造メッセージをポストする理由:
     // ここで模造メッセージをポストする理由 :
     // この通知関数からは、できるだけ早く抜け出す必要がある。
     // この通知関数からは、できるだけ早く抜ける必要がある
     // たとえば、OnLButtonDownでOLEコントロールを作成しようとすると、
     // 例えば、OnLButtonDownでOLEコントロールを作成する場合、エラーコード"RPC_E_CANTCALLOUT_ININPUTSYNCCALL"が送出される
     // 暗号のようなエラーコードRPC_E_CANTCALLOUT_ININPUTSYNCCALLをMFCから受け取ることになるだろう。
     // このエラーは、WinError.hによると、"ソフトウェアが入力同期呼び出しをディスパッチしているため、発信呼び出しはできない"
    // WinError.hによるとこのエラーの意味は「アプリケーションが入力同期呼び出しをディスパッチしているので、発信呼び出しはできない。」
   
   
     switch(uiMouseMsg)
     switch(uiMouseMsg)
191行目: 192行目:
CTrayWndクラスのコンストラクタに、メンバ変数m_bFireDoubleClickの初期化処理を記述する。<br>
CTrayWndクラスのコンストラクタに、メンバ変数m_bFireDoubleClickの初期化処理を記述する。<br>
<br>
<br>
また、CTrayWndクラスに、WM_TIMER、WM_LBUTTONUP、WM_RBUTTONUP、WM_LBUTTONDBLCLKメッセージに対応するイベントハンドラを記述する。<br>
また、CTrayWndクラスに、<code>WM_TIMER</code>、<code>WM_LBUTTONUP</code>、<code>WM_RBUTTONUP</code>、<code>WM_LBUTTONDBLCLK</code>メッセージに対応するイベントハンドラを記述する。<br>
  <syntaxhighlight lang="c++">
  <syntaxhighlight lang="c++">
  // TrayWnd.cpp
  // TrayWnd.cpp
341行目: 342行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
==== ウィンドウの作成および破棄におけるアイコンの登録・削除 ====
==== ウィンドウの作成および破棄におけるアイコンの登録・削除 ====
CTrayWndクラスのコンストラクタに、メンバ変数m_hIcon_mainの初期化処理を記述する。<br>
CTrayWndクラスのコンストラクタに、メンバ変数m_hIcon_mainの初期化処理を記述する。<br>

案内メニュー