VB6を使っています。
Microsoft Forms 2.0 ListBoxに、中国語・韓国語などをセットして
その文字列幅分のWidth調整をするにはどのようにすればよいのでしょう?
詳しい方、よろしくご教授ください。
すみません、上記質問は TextBoxでの方法です。
訂正、再質問
VB6を使っています。
Microsoft Forms 2.0 「TextBox」 に、中国語・韓国語などをセットして
その文字列幅分のWidth調整をするにはどのようにすればよいのでしょう?
詳しい方、よろしくご教授ください。
'×教授
'○教示
http://support.microsoft.com/kb/193540/ja
http://support.microsoft.com/kb/224305/JA/
http://support.microsoft.com/kb/241245/
幅の調整は、
TextBox1.AutoSize = True
で済めばお手軽ですね。
>もげさんありがとうございます。
TextBoxを AutoSize = True
にプロパティ設定して
TextBoxにUnicode文字列をセットしても幅が文字幅になりません。
幅が1文字分ぐらいの幅になってしまいます。
では、
GetTextExtentPoint32W(API)
が必要でしょう。
http://madia.world.coocan.jp/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を置いて文字幅を取得して、
それを使うとか。