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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0313
レヴィンオブジェクトのスタイルの変更について5解決


レヴィン

リンク

2007/3/13(Tue) 00:19:13|NO.6250

ゲームのコンフィグをつくっているのですが、どうしていいかわからないことが
あるので質問します。

・入力ボックスを編集不能にできますか?(無効ではなく、あくまで編集不能です)
・mesboxのスクロールバーを消せますか?
どちらか一方で構いませんの可能なほうを教えてください。
ヒントや"ここのページ見ろ!"でも構いませんのお願いします。

どうしてこんなことがしたいかといいますと、キーコンフィグを作っているのですが、
編集不能な入力ボックス?(mesbox?)のフォーカスをあわせてキーボードや
パッドのボタンを押すと、内容がそれに対応したものに変わるといったものを作りたい
からです。

※キーコンフィグの方法はわかります



この記事に返信する


As

リンク

2007/3/13(Tue) 01:30:04|NO.6251

>・mesboxのスクロールバーを消せますか?
スクロールバーの非表示に関しては下のスクリプトを使えば可能です。^^

#module #uselib "user32.dll" #func ShowScrollBar "ShowScrollBar" sptr,sptr,sptr //p1: obj id //p2: 0=visible 1=disabled #deffunc noscrollbar int p1,int p2 ShowScrollBar objinfo(p1,2),1,p2 return #global sdim aa mesbox aa,100,100 noscrollbar 0,0 //非表示 stop

>・入力ボックスを編集不能にできますか?(無効ではなく、あくまで編集不能です)

 入力ボックスを編集不能でありつつも無効ではないものというのはどういうものでしょうか? 通常編集不可能を表すにはWindowsのGUIとして「無効」状態にすることが通常ですが、そうでない場合というのはオブジェクトがどういった状態のことでしょうか?
 たとえば、無効状態となった入力ボックスは灰色ですが、この灰色の色を白色に変えたりということでしょうか?



kz3

リンク

2007/3/13(Tue) 02:53:53|NO.6253

聞かれてることとは全然違う返答になりますが、「ホットキーコントロール」という名前を覚えておくと、GUIでツールを作成するときに役に立つでしょう。

ゲームはやっぱりゲームの雰囲気にあった画面作りが大事だと思うので、GUIに頼らずにgetkeyを使ってでも、出来ますね。



レヴィン

リンク

2007/3/13(Tue) 11:19:12|NO.6257

>>Asさん・kz3さん回答ありがとうございます。

>>入力ボックスを編集不能でありつつも無効ではないものというのはどういうもの
>>でしょうか?
>>通常編集不可能を表すにはWindowsのGUIとして「無効」状態にすることが通常ですが、
>>そうでない場合というのはオブジェクトがどういった状態のことでしょうか?
>>たとえば、無効状態となった入力ボックスは灰色ですが、この灰色の色を白色に変えた
>>りということでしょうか?


mesboxの編集不能と同じ状態です。入力ボックスを無効にする方法はわかるのですが、
無効にすると、フォーカスを移動できなくなりますし、文字が薄くなってしまいます。
これらを回避し、mesboxを編集不能したのと同じ状態にしたかったのです。
要するに"mesboxを編集不能にし、スクロールバーが消えた状態"にしたかったわけです。

>>ゲームはやっぱりゲームの雰囲気にあった画面作りが大事だと思うので、
>>GUIに頼らずにgetkeyを使ってでも、出来ますね。

そうですね。まぁ、そうなんですが、ゲーム外はGUIで、ゲーム内はゲームに
あわせて作るつもりです。



kz3

リンク

2007/3/13(Tue) 13:10:32|NO.6260

ホットキーコントロールはこんなやつです。

winobj "msctls_hotkey32", "", 0, $50000000, 200, 20



Irisawa

リンク

2007/3/13(Tue) 14:36:01|NO.6264

本当はGetWindowLongとSetWindowLongを使用してES_READONLYスタイルを設定するのですが
なんかうまくいかなかったので別の方法でやってみました。
(効果は同じでこちらの方が簡単なのでこれでいいと思います)


#const EM_SETREADONLY 0xcf objsize 64 input buf1 id = stat cpy = ginfo(23) input buf2 pos 65, cpy button "値変更", *bt sendmsg objinfo(id, 2), EM_SETREADONLY, 1, 0 stop *bt objprm id, buf2 stop



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