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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0401
やのえオブジェクトIDからそのオブジェクトの状態を知る方法を教えてください2解決


やのえ

リンク

2020/4/1(Wed) 22:06:12|NO.89899

オブジェクトIDからそのオブジェクトの状態を知る方法をあれば教えてほしいです
例えば

mesbox1="" mesbox mesbox1,100,100,0,100
などの最大文字数や、スタイルなどを取得したいです、



この記事に返信する


あらや

リンク

2020/4/2(Thu) 00:56:47|NO.89902

自分で用意したmesboxの最大文字数やスタイルを
わざわざ取得する意味がわかりませんが……

HSPのオブジェクトのスタイルという限定された状況では
mesboxにしか使えませんがモジュール化してみました。

最大文字数に関してはVista以降で無いと使えません。

#module #define EM_GETLIMITTEXT 0x00D5 #uselib "user32.dll" #cfunc GetWindowLong "GetWindowLongA" int, int #func GetClassName "GetClassNameA" int, var, int // mesboxのスタイルを取得 #defcfunc GetMesBoxStyle int _objid sdim clsname, 260; // クラス名用変数の初期化 wstyle = 0; // ウィンドウスタイル用変数の初期化 style = 0; // mesboxのスタイル GetClassName objinfo(_id, 2), clsname, 260; // クラス名取得 wstyle = GetWindowLong(objinfo(_id, 2), -16); // スタイル取得 if( clsname == "Edit" ) { if( wstyle & 4 ) { // mesbox if( wstyle & 0x0800 ) { style = 0; // 書き換え不可 } else { style = 1; // 書き換え可 } if( wstyle & 0x00100000 ) { style += 4; // 横スクロールバー有 } } } return style; // mesboxの最大文字数を取得(これはinputでも可) #defcfunc GetMesBoxLimit int _objid sendmsg objinfo(_id, 2), EM_GETLIMITTEXT, 0, 0; // Vista以降 return stat; #global // 以下サンプル pos 0, 0; mesbox1 = ""; mesbox mesbox1, 100, 100, 5, 100; objid = stat; mes "mesboxのスタイルは "+GetMesBoxStyle(objid)+""; mes "mesboxの最大文字数は "+GetMesBoxLimit(objid)+""; stop;



やのえ

リンク

2020/4/2(Thu) 12:08:51|NO.89906

あらやさんサンプルありがとうございます
スタイルだけでも取特したかったのでたすかりました



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