教えてください。
VB6SP3+Windows98で作成したAPPをWinXPで使用しました。
テキストボックスに文字を入れる際、IME2000でサポートされていないが、IME2002でサポートしている文字を入力すると「????」と表示されて困っています。
教えてください。
> 「????」と表示されて困っています。
具体的には、なんという文字を入れようとされたのでしょうか?
> 教えてください。
Win98のメモ帳でも表示できるような、一般的な文字であるとしたら、
対応するフォントが無いか、もしくは、TextBox.Font.Charsetプロパティが
0 になってしまっているかのいずれかだと思います。
あるいは、Win98のメモ帳では表示できない文字だとしたら、それは
おそらく、Unicodeにはあって、Shift_JISには無いような文字なのでしょう。
TextBoxを始めとするVBの標準コントロールは、いずれもUnicodeの
入力に対応していないので、Shift_JISに無い文字は化けてしまう仕様です。
もし、Unicode文字を入れようとしているのであれば、
標準コントロールの代わりに、Unicode対応のActiveXコントロールを
使用する必要があるでしょう。
回答ありがとうございます。
>具体的には、なんという文字を入れようとされたのでしょうか?
ちなみに文字は「きょう」山ヘンに橋の木ヘンを取った字です。
(現在IME2000を使用しているので、文字がありません)
なお、「きょう」といれて変換まではうまくいくのですが、確定で??となってしまいます。引き続き教えてください。
追加です。
調べてみたら、まさしくUnicodeでした。ちなみに、Unicode対応のActiveXコントロールは、何を使ったらよいのでしょうか?
VB付属のコントロールで、Unicodeに対応しているのは、
DataGridとDBGridだけです。
あとは、IE付属のWebBrowserコントロール、そして、
Office付属の(Microsoft Forms 2.0の)TextBoxコントロールですかね。
私は、WebBrowserコントロールに textareaエレメント(もしくは
input type=textエレメント)を表示させ、それを MSHTML.TLB と
組み合わせて、TextBoxの代用とした事があります。
ツイート | ![]() |