12,993
回編集
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コントロールを作成する場合、エラーコード"RPC_E_CANTCALLOUT_ININPUTSYNCCALL"が送出される | ||
// | // このエラーは、WinError.hによると、"ソフトウェアが入力同期呼び出しをディスパッチしているため、発信呼び出しはできない" | ||
switch(uiMouseMsg) | switch(uiMouseMsg) | ||
191行目: | 192行目: | ||
CTrayWndクラスのコンストラクタに、メンバ変数m_bFireDoubleClickの初期化処理を記述する。<br> | CTrayWndクラスのコンストラクタに、メンバ変数m_bFireDoubleClickの初期化処理を記述する。<br> | ||
<br> | <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> |