いつもお世話になります。
WindowsXP,VC9にてCFormView+モードレスダイアログの組み合わせで
アプリを作成しています。
ダイアログのプロパティにてコンテキストヘルプにチェックを入れ
タイトルバーに?ボタンを表示させています。
この?ボタンをクリックすれば、マウスカーソルが変化し、
ヘルプモード(?)に変わりますが、CFormView側は通常カーソル
のままとなってしまいます。
CFormView側のヘルプモードに変更することはできないでしょうか?
いつも質問ばかりで申し訳ありませんが、宜しくお願い致します。
ウインドウに対して
SendMessage(WM_SYSCOMMAND, SC_CONTEXTHELP);
とかしてやるとヘルプモード(?)になってくれるようです。
#そのようなユーザーインターフェースが使いやすいか疑問ではありますが・・・
回答ありがとうございます。
> ウインドウに対して
> SendMessage(WM_SYSCOMMAND, SC_CONTEXTHELP);
> とかしてやるとヘルプモード(?)になってくれるようです。
WM_SYSCOMMANDのイベントを捕まえて
AfxGetMainWnd()->SendMessage(WM_SYSCOMMAND, SC_CONTEXTHELP);
行ったところ、CFormViewは?になりましが、ダイアログ側はなりませんでした。
PostMessageに変更したところ、逆になりました。
やり方が間違っているのでしょうかね。
1つのウインドウでしか有効にならないような仕様なのかもしれませんね。
各ウインドウでカーソルだけIDC_HELPに変更してそのように見せかけるとかはダメ?(^_^;
回答ありがとうざいます。
既に試みたんですが、OnSetCursorにも飛んでこないんです。
?ボタンを押した後は、押したウィンドウのみしかイベントが
発生していない感じです。
?ボタンが押されたときに、SC_CONTEXTHELPを処理するのではなく
疑似的に処理するしかないのかなと思っています。
でも、そーすると全てのボタンなどに今はヘルプ中だから・・・
ヘルプ中でないから通常処理と言う風に記述しないといけない
からかなり大変そうです。