HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0107
ぽぴオブジェクトの上で右クリックの検知方法2解決


ぽぴ

リンク

2011/1/7(Fri) 06:34:43|NO.36544

題名通りですが現在Footy2でテキストエディタ作っています。
そこでエディタの上で右クリック項目メニューを追加しようとしたのですが、エディタの
上では右クリックを検知してくれません。

repeatでリアルタイムで右クリックを監視していれば検知できるのですが、repeatは
使いたくなくて onclick と oncmd  を試したのですがうまくいきません。
オブジェクトの上で右クリックを検知する方法とか知ってる方いらっしゃいましたら
教えていただけないでしょうか。
よろしくお願いします。



この記事に返信する


info

リンク

2011/1/7(Fri) 07:42:18|NO.36545

WM_PARENTNOTIFY を使う方法。


button gosub "右クリック",*dummy oncmd gosub *wndmsg_Parentnotify , 0x210 stop *dummy return *wndmsg_Parentnotify mes strf("hwnd = %d , pos %d,%d",wparam,lparam&0xFFFF , lparam>>16&0xFFFF ) return

ただしこの方法は、debugウィンドウを使用していると、不具合が有るように見えるので。私的に右クリックの場合には。WM_CONTEXTMENU を使用します。


button gosub "右クリック",*dummy oncmd gosub *wndmsg_ContextMenu , 0x7B stop *dummy return *wndmsg_ContextMenu mes strf("hwnd = %d , pos %d,%d",wparam,lparam&0xFFFF , lparam>>16&0xFFFF ) return

Footy2 に手を出したことが無いので、絶対とは言えませんが。
多分、このどちらかで大丈夫だと思います。



ぽぴ

リンク

2011/1/7(Fri) 08:46:18|NO.36546

ありがとございます。
確かにWM_PARENTNOTIFY ではdebugウィンドウ使ってるので実行がおかしくなりますね。

でも、WM_CONTEXTMENU で無事いけました。

そして問題点を発見することができました。
私もWM_CONTEXTMENU で試したのですが、うまくいかず、infoさんの答えを見て問題点は
違うところにあることが分かりました><
親ウインドウの中に

GetWindowLong SetWindowLong SetParent
で、新たに子のスクリーンをいくつか作成しその中にエディタを入れていました。
ココが問題点だったわけです><
oncmdの位置が子のウインドウじゃなく、親ウインドウに指定されていたので、実行しても
実行されなかったわけです><
でも、infoさんの答えを見て問題点は違うところにある!!!!て、無事見つけることが
できました。
ほんとにありがとうございます!!



ONION software Copyright 1997-2023(c) All rights reserved.