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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0119
さかリッチエディット スクロールイベント取得3解決


さか

リンク

2020/1/19(Sun) 17:28:48|NO.89289

以下のソースでスクロールイベント(ENM_SCROLL)を取得しタイトルに表示しているつもり
なのですがうまく行かないです。
ちょくとさんのページを参考にしています。
http://chokuto.ifdef.jp/urawaza/prm/richedit_event_mask.html

EM_SETEVENTMASKが反映されてないように思います。何か不足しているのでしょうか。


#include "kernel32.as" #define WS_CHILD $40000000 #define WS_VSCROLL $00200000 #define WS_HSCROLL $00100000 #define ES_AUTOVSCROLL $0040 #define ES_AUTOHSCROLL $0080 #define ES_MULTILINE $0004 #define ES_DISABLENOSCROLL $00002000 #define ENM_SCROLL $00000004 #define WM_USER $0400 #define WM_HSCROLL $0114 #define WM_VSCROLL $0115 #define WM_NOTIFY $004E #define WM_COMMAND $0111 #define EM_POSFROMCHAR (WM_USER + 38) #define EM_SETBKGNDCOLOR (WM_USER + 67) #define EM_GETCHARFORMAT (WM_USER + 58) #define EM_SETCHARFORMAT (WM_USER + 68) #define EM_GETEVENTMASK (WM_USER + 59) #define EM_SETEVENTMASK (WM_USER + 69) LoadLibrary "RICHED20.dll": hLib = stat dwStyle = $56000000|ES_MULTILINE|ES_DISABLENOSCROLL|ES_AUTOVSCROLL|ES_AUTOHSCROLL|WS_HSCROLL|WS_VSCROLL winobj "RichEdit20A", "", $0200, dwStyle, ginfo_winx, ginfo_winy, 0, 0 hRich = objinfo_hwnd(stat) sendmsg hRich, EM_GETEVENTMASK, 0, 0 dwMask = ENM_SCROLL // ←が反映してないようです。 sendmsg hRich, EM_SETEVENTMASK, 0, dwMask oncmd gosub *On_command, WM_COMMAND mm="a\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\n" sendmsg hRich, $000000C2, 1, varptr(mm) // EM_REPLACESEL gsel 0,1 stop *On_command // ★wNotifyにEN_VSCROLLのコードが表示されるはずなのですが title strf( "On_command ★wNotify[%d] idEdit[%d] tm[%d]", wparam & 0xFFFF,((wparam>>16) & $FFFF), gettime(7) ) return 0



この記事に返信する


あらや

リンク

2020/1/19(Sun) 17:59:09|NO.89290

wNotifyとidEditが逆ですね。

タイトルだと一瞬で分かりにくいんですが、

ダイアログで表示すると
idEditの方にEN_VSCROLLのコード(1538)が表示されます。

ただ即座に表示更新のEN_CHANGE(0x0400、10進だと1024)が送られるので
すぐにコードが上書きされてしまってわかりにくい事になってしまっただけかと思います。

ダイアログ表示だと一度に複数のダイアログが出て来るのでご注意ください。



さか

リンク

2020/1/19(Sun) 18:21:18|NO.89291

あらやさん、ありがとうございます。(wNotifyとidEditが逆でした。)

なるほど、logmesで表示したら上手く行ってることがわかりました。
On_Notifyに送られるイベントは上手く行くのにと謎でした。

デバッグ表示することによるイベント発生を注意します。
これはoncmdの基本ですね。(^^;



さか

リンク

2020/1/19(Sun) 18:22:01|NO.89292

解決忘れました。解決です。



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