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

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



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.89899への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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