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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1001
さかリッチエディットオブジェクト内の文字入力縦幅取得2解決


さか

リンク

2013/10/1(Tue) 22:01:32|NO.57489

リッチエディット内の隠れている文字縦幅を取得したいのですが良い方法が見つかりません。
行数から計算しようと思ったのですがフォントサイズがばらばらの場合難しいです。
最終的になにをしたいと言うと枠からはみ出している文字が出力される調度良い大きさに縦
幅をリサイズしたいです。

例えば、下のソースでボタンを押したときに入力されている文字が全部出力されるよう縦幅
を計算してリサイズしたいです。
よろしくお願いします。

#include "kernel32.as"
#include "user32.as"

LoadLibrary "RICHED20.DLL"
pos 0,0: winobj "RichEdit20A","",0,0x50800104,300,300
//pos 0,0: winobj "RichEdit20A","",0,0x50800004,300,300 // スクロールバーあり
hRich = objinfo_hwnd(stat)
mm="a\na\na\na\na\na\na\na\na\na\na\na\na\na\na\nx\n"
sendmsg hRich, $000000C2, 1, varptr(mm) // EM_REPLACESEL
pos 300,0: button "リサイズ", *bb
stop
*bb
sy=400 // ←ここの縦幅を計算したいです。
MoveWindow hRich,0,0,300,sy,1
stop



この記事に返信する


fortunehill

リンク

2013/10/2(Wed) 05:18:22|NO.57491

/*ご参考*/

#include "kernel32.as" #include "user32.as" LoadLibrary "RICHED20.DLL" pos 0,0: winobj "RichEdit20A","",0,0x50800104,300,300 //pos 0,0: winobj "RichEdit20A","",0,0x50800004,300,300 // スクロールバーあり hRich = objinfo_hwnd(stat) mm="a\na\na\na\na\na\na\na\na\na\na\na\na\na\na\nx\n" sendmsg hRich, $000000C2, 1, varptr(mm) // EM_REPLACESEL pos 300,0: button "リサイズ", *bb ;============================== sendmsg hRich,$445,0,$40000 ; EM_SETEVENTMASK ENM_REQUESTRESIZE) oncmd gosub *label,$4E ; sendmsg hRich,1793,0,0 ;============================== stop *bb sy=400 // ←ここの縦幅を計算したいです。 MoveWindow hRich,0,0,300,sy,1 stop ;============================== *label dupptr nn,lparam,120 ; REQRESIZE if (nn(2) == 1793) {title strf("%d %d %d %d %d",nn(2),nn(3),nn(4),nn(5),nn(6)) MoveWindow hRich,0,0,300,nn(6),1} return ;==============================



さか

リンク

2013/10/2(Wed) 21:10:09|NO.57494

fortunehillさん、ありがとうございます!!

なるほど、リッチエディットのイベントで取得できるのですね。ほとんど、解決です。
それどころか、入力しながら縦幅が変更されるなんて色々応用が出来そうです。

しばらく悩んでいたのですがもっと早く質問すれば良かったです。
ほんとにありがとうございました。



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