by シルフィード » 2005年12月05日(月) 17:26
> 現在のカーソル位置はエディットボックスへEM_GETSELを送ってみればわかります。
> カーソルの開始位置と終了位置が返ってくるので両者が等しければ選択状態でないと判断します。
>
> さて問題はメニューが表示される瞬間にということです。
> これはそのときにWM_INITMENUPOPUPが送られてくるのでこのときを利用します。
> これはイベント一覧にはないのでMainWndProcなどで受け取る必要があります。
> そのときLOWORD(wParam)で何番目のメニュー項目が表示されようとしているかがわかるので,
> それが編集メニューの位置と同じであるかを調べれば良いわけです。
教えていただいたWM_INITMENUPOPUPで出来ました。ありがとうございます。
自分でも調べていたらWM_INITMENUというのが出てきて、これでも、同じ動作(?)をしたんですが、
WM_INITMENUPOPUとWM_INITMENUはどのように違うんでしょうか?
> 現在のカーソル位置はエディットボックスへEM_GETSELを送ってみればわかります。
> カーソルの開始位置と終了位置が返ってくるので両者が等しければ選択状態でないと判断します。
>
> さて問題はメニューが表示される瞬間にということです。
> これはそのときにWM_INITMENUPOPUPが送られてくるのでこのときを利用します。
> これはイベント一覧にはないのでMainWndProcなどで受け取る必要があります。
> そのときLOWORD(wParam)で何番目のメニュー項目が表示されようとしているかがわかるので,
> それが編集メニューの位置と同じであるかを調べれば良いわけです。
教えていただいたWM_INITMENUPOPUPで出来ました。ありがとうございます。
自分でも調べていたらWM_INITMENUというのが出てきて、これでも、同じ動作(?)をしたんですが、
WM_INITMENUPOPUとWM_INITMENUはどのように違うんでしょうか?