Unicode対応のActiveXコントロール – プログラミング – Home

Unicode対応のActiveXコン...
 
通知
すべてクリア

Unicode対応のActiveXコントロール


まひ
 まひ
(@まひ)
ゲスト
結合: 23年前
投稿: 8
Topic starter  

こんにちわ。まひと申します。
[環境]Win2000Pro、VC++6.0、MFC、ActiveX

Unicode対応のグリッドコントロールを作成しています。
このグリッド上で入力や選択機能を持たせたくてCEditクラスのエディットやCComboBoxクラス
のコンボボックスを貼り付けましたが、S-JISのエディット、コンボボックスになってしまいま
す。もちろんUnicodeビルドはしています。
CEditクラスのエディットやCComboBoxクラスのコンボボックスを何とかUnicodeのものとして
利用する方法はないのでしょうか?

エディットだけであればリッチエディットで明示的にUnicodeと指定して対応できるのですが、
コンボボックスもあるとなると自前で書くしかないのかなと思っています。
貼られる側(ActiveX)でCEditクラスやCComboBoxクラスを使うのが間違っているのでしょう
か?
アドバイスよろしくお願い致します。


引用解決済
トピックタグ
まひ
 まひ
(@まひ)
ゲスト
結合: 23年前
投稿: 8
Topic starter  

こんにちわ。

ちなみにCEditやCComboBoxは、ダブルクリックされた時に一時的に貼り付けています。

VBで作成するEXEは、VCのようにエントリポイント「wWinMainCRTStartup」のような指定がない
ため、VB標準のエディットやコンボボックスが作られてしまうためなのかなーと思っています。


返信引用
たく
 たく
(@たく)
ゲスト
結合: 23年前
投稿: 37
 

spyではどのように表示されていますか?(Unicodeになってる?)

> ダブルクリックされた時に一時的に貼り付けています。
明示的にCreateWindowWを呼んでみるとか、
表示・非表示を切り替えて移動させてみるとか、
その辺を試してみてはいかがでしょうか?


返信引用
まひ
 まひ
(@まひ)
ゲスト
結合: 23年前
投稿: 8
Topic starter  

たくさん 書き込みありがとうございます。
spyの見方がよくわからないので、どこを見るとUnicodeになっているか判断できません。
すみません。

えーとその後の調べた所まで報告します。

まず、私が作成したコントロールのCEdit、CComboBoxクラスはUnicodeのウィンドウとしてき
ちんと作成されているようでした。
Unicode文字列を保存したファイルからデータを読み込んで、SDKのSetWindowTextWで設定した
ところ、Unicode文字として表示できました。
メモ帳のUnicode文字列のペーストもできました。
問題としては、IMEからの入力でのみ文字化けが発生しているようです。

IMEからの入力だけであせって判断してしまった為、初めの発言内容になってしまいました。
もっとよく確認してから書き込みをするべきでした。申し訳ありません。

また、MBCSビルドのMFCダイアログアプリケーションに、CreateWindowExWでエディットを作成
した所、ここでも同様にIMEからの入力のみ文字化けが発生しました。

ということで、サブクラス化などして何とかIMEの対応が出来れば良いのではないかと考えてい
ます。
どうでしょうか?

何か参考になるサイトなどありましたら、お教えください。
よろしくお願い致します。


返信引用
たく
 たく
(@たく)
ゲスト
結合: 23年前
投稿: 37
 

クリップボード経由は、
CF_TEXTとCF_UNICODETEXTの両方をサポートしている場合がありますので、
ActiveXがUNICODEで、コンテナが非UNICODEの場合に
文字化けするということでしょうか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました