ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月27日(土) 23:54

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2005年12月04日(日) 16:20 
メモ帳の編集メニューを見ると、文字が選択されていないときは、
「切り取り」や「コピー」などが無効化されていますが、
あれはどうやれば出来ますか?


通報する
ページトップ
   
投稿記事Posted: 2005年12月04日(日) 16:34 
引用:
メモ帳の編集メニューを見ると、文字が選択されていないときは、
「切り取り」や「コピー」などが無効化されていますが、
あれはどうやれば出来ますか?
EnableMenuItem関数で出来ます。


通報する
ページトップ
   
投稿記事Posted: 2005年12月04日(日) 17:52 
> EnableMenuItem関数で出来ます。

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

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


通報する
ページトップ
   
投稿記事Posted: 2005年12月04日(日) 22:43 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
現在のカーソル位置はエディットボックスへEM_GETSELを送ってみればわかります。
カーソルの開始位置と終了位置が返ってくるので両者が等しければ選択状態でないと判断します。

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


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

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

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


通報する
ページトップ
   
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[10人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean