おせわになっております。
環境XPSP3+VC6です。
(2008/05/30に質問2008/06/01-ありす-済-12件-DLLで定義したツールバーのツールチッ
プやUPDATE_UIに関連しまするのですが。)
AppWizardで吐き出しただけのExeと拡張DLLに、
DLL側リソースエディタで定義したツールバーを
EXE側でツールバーを作成して、
そのツールバーのボタンIDを数値を直接コードに打ちました、
ON_COMMANDやON_COMMAND_UPDATE_UIで、
イベントハンドラーでつかまえようとしてしてみましたが、
ハンドリングできませんでした。
同じIDのツールバーをExe側にメニューとかツールバーを作成しても、
数値で指定したままのハンドラーでは、ハンドリングできず
ボタンやメニューはDisableのままです。
もちろん、通常の様に、数値でなくIDを書けばEnableになります。
ON_COMMAND_EX_RANGEや
ON_COMMAND_UPDATE_UI_RANGEなどの
範囲系のものでハンドラーを記述すると、
正常にハンドリングできます。
MAKEINTRESOURCEとかあるし、IDを文字列で定義できたりもするので、
なにか、リソースIDには#defineされた値以外の仕組みがあるようにおもえるのです。
RANGEを使った場合には数値の範囲をつかっているようですが、
「このIDは、ハンドリグされてますよ」みたいな、
通常のIDでハンドリングした場合には、数値だけでない、
なにか特殊な仕掛けがあるのでしょうか?
よろしくおねがいいたします。
(これが、前回のDLLリソースIDのハンドリングの邪魔、といいますか、問題解明の
きっかけになるようなきがするのです。)
同じID値ならば、リテラル数値を指定しても#defineされたID名を指定
してもどちらも同じ結果になるハズです。
(コンパイル結果は同じになるハズ)
EXE側とDLL側とでID値の定義が異なっているか、そうでなければ
もっと単純なミスが考えられます。
ちなみに、MFCのコマンドIDは、32768(0x8000)~57343(0xDFFF)までの
範囲でなければいけません。
あまり関係無いとは思いますが、一応確認してください。
Kerryさん、ありがとうございます。
IDをタイプミスしてました。
(ついでに、前に質問させていただいたプラグインのプロジェクトも大幅に見直し
て、ツールチップもでるようになりました。
本体側とプラグイン間のやり取り部分に問題があったようです。)
おさわがせいたしました。
ありがとございました。