VB6のテキストボックスにIME2002の文字を表示するには?


ほんけん  2002-11-29 23:33:22  No: 76473

教えてください。
VB6SP3+Windows98で作成したAPPをWinXPで使用しました。
テキストボックスに文字を入れる際、IME2000でサポートされていないが、IME2002でサポートしている文字を入力すると「????」と表示されて困っています。
教えてください。


魔界の仮面弁士  2002-11-30 01:09:17  No: 76474

> 「????」と表示されて困っています。
具体的には、なんという文字を入れようとされたのでしょうか?

> 教えてください。
Win98のメモ帳でも表示できるような、一般的な文字であるとしたら、
対応するフォントが無いか、もしくは、TextBox.Font.Charsetプロパティが
 0 になってしまっているかのいずれかだと思います。

あるいは、Win98のメモ帳では表示できない文字だとしたら、それは
おそらく、Unicodeにはあって、Shift_JISには無いような文字なのでしょう。
TextBoxを始めとするVBの標準コントロールは、いずれもUnicodeの
入力に対応していないので、Shift_JISに無い文字は化けてしまう仕様です。

もし、Unicode文字を入れようとしているのであれば、
標準コントロールの代わりに、Unicode対応のActiveXコントロールを
使用する必要があるでしょう。


ほんけん  2002-11-30 01:58:46  No: 76475

回答ありがとうございます。

>具体的には、なんという文字を入れようとされたのでしょうか?
ちなみに文字は「きょう」山ヘンに橋の木ヘンを取った字です。
(現在IME2000を使用しているので、文字がありません)

なお、「きょう」といれて変換まではうまくいくのですが、確定で??となってしまいます。引き続き教えてください。


ほんけん  2002-11-30 02:29:32  No: 76476

追加です。
調べてみたら、まさしくUnicodeでした。ちなみに、Unicode対応のActiveXコントロールは、何を使ったらよいのでしょうか?


魔界の仮面弁士  2002-11-30 07:57:29  No: 76477

VB付属のコントロールで、Unicodeに対応しているのは、
DataGridとDBGridだけです。

あとは、IE付属のWebBrowserコントロール、そして、
Office付属の(Microsoft Forms 2.0の)TextBoxコントロールですかね。

私は、WebBrowserコントロールに textareaエレメント(もしくは
input type=textエレメント)を表示させ、それを MSHTML.TLB と
組み合わせて、TextBoxの代用とした事があります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加