メモ帳のようなメニューについて

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: メモ帳のようなメニューについて

Re: メモ帳のようなメニューについて

by シルフィード » 2005年12月05日(月) 17:26

> 現在のカーソル位置はエディットボックスへEM_GETSELを送ってみればわかります。
> カーソルの開始位置と終了位置が返ってくるので両者が等しければ選択状態でないと判断します。
>
> さて問題はメニューが表示される瞬間にということです。
> これはそのときにWM_INITMENUPOPUPが送られてくるのでこのときを利用します。
> これはイベント一覧にはないのでMainWndProcなどで受け取る必要があります。
> そのときLOWORD(wParam)で何番目のメニュー項目が表示されようとしているかがわかるので,
> それが編集メニューの位置と同じであるかを調べれば良いわけです。

教えていただいたWM_INITMENUPOPUPで出来ました。ありがとうございます。

自分でも調べていたらWM_INITMENUというのが出てきて、これでも、同じ動作(?)をしたんですが、
WM_INITMENUPOPUとWM_INITMENUはどのように違うんでしょうか?

Re: メモ帳のようなメニューについて

by イグトランス » 2005年12月04日(日) 22:43

現在のカーソル位置はエディットボックスへEM_GETSELを送ってみればわかります。
カーソルの開始位置と終了位置が返ってくるので両者が等しければ選択状態でないと判断します。

さて問題はメニューが表示される瞬間にということです。
これはそのときにWM_INITMENUPOPUPが送られてくるのでこのときを利用します。
これはイベント一覧にはないのでMainWndProcなどで受け取る必要があります。
そのときLOWORD(wParam)で何番目のメニュー項目が表示されようとしているかがわかるので,
それが編集メニューの位置と同じであるかを調べれば良いわけです。

Re: メモ帳のようなメニューについて

by シルフィード » 2005年12月04日(日) 17:52

> EnableMenuItem関数で出来ます。

無効化・有効化自体のやり方はわかるんですが、
メニューバーからメニューを表示するときに文字が選択されているかどうかで
無効か有効かを変更したいんです。

言葉が足りなかったようで申し訳ありません。
よろしくおねがいします。

Re: メモ帳のようなメニューについて

by KICO » 2005年12月04日(日) 16:34

メモ帳の編集メニューを見ると、文字が選択されていないときは、
「切り取り」や「コピー」などが無効化されていますが、
あれはどうやれば出来ますか?
EnableMenuItem関数で出来ます。

メモ帳のようなメニューについて

by シルフィード » 2005年12月04日(日) 16:20

メモ帳の編集メニューを見ると、文字が選択されていないときは、
「切り取り」や「コピー」などが無効化されていますが、
あれはどうやれば出来ますか?

ページトップ