■ VB6でのMicrosoft Forms 2.0 ListBox
すけさん
2007/12/26(水) 11:48:09 <中級者> 
VB6を使っています。
Microsoft Forms 2.0 ListBoxに、中国語・韓国語などをセットして
その文字列幅分のWidth調整をするにはどのようにすればよいのでしょう?
詳しい方、よろしくご教授ください。
すけさん
2007/12/26(水) 11:53:53
すみません、上記質問は TextBoxでの方法です。
訂正、再質問
VB6を使っています。
Microsoft Forms 2.0 「TextBox」 に、中国語・韓国語などをセットして
その文字列幅分のWidth調整をするにはどのようにすればよいのでしょう?
詳しい方、よろしくご教授ください。
もげ
2007/12/26(水) 13:40:43 <常連> 
'×教授
'○教示
http://support.microsoft.com/kb/193540/ja
http://support.microsoft.com/kb/224305/JA/
http://support.microsoft.com/kb/241245/
幅の調整は、
TextBox1.AutoSize = True
で済めばお手軽ですね。
すけさん
2007/12/27(木) 14:10:25
>もげさんありがとうございます。
TextBoxを AutoSize = True
にプロパティ設定して
TextBoxにUnicode文字列をセットしても幅が文字幅になりません。
幅が1文字分ぐらいの幅になってしまいます。
もげ
2007/12/28(金) 10:06:39 <常連> 
では、
GetTextExtentPoint32W(API)
が必要でしょう。
http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200403/200403_04030044.html
http://msdn2.microsoft.com/en-us/library/ms534223.aspx
http://www.winapi-database.com/Graphics/TextOut/GetTextExtentPoint32.html
ですが、Forms2.0のTextBoxにはhWndプロパティが存在しないので、
この方法ではちょっと無理でしょう。
RichTextBoxではダメでしょうか?
Forms2.0(VB6.0で非サポート、既知バグあり、配布条件いろいろあり)
に固執する必要がなければ、そういう選択もあるのでは?と思いますね。
どうしてもというのであれば、
同一フォントサイズに設定したダミーのRichTextBoxを置いて文字幅を取得して、
それを使うとか。
毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!
