0

コンボボックスコントロールを利用するVisualStudio2005 C++MFCプロジェクトがあります。プロパティType = Dropdown。プロジェクトは元々UNICODEにあり、コンボボックスコントロールは期待どおりに機能しました。次に、文字セットをUNICODEからマルチバイト文字セットに変更して、特別なエンジニアリングパッケージであるNationalInstrumentsのMeasurementStudioで利用可能なクラス/ライブラリと互換性を持たせる必要がありました。これを行うと、コンボボックスが正しく機能しなくなる(つまり、ドロップダウンメニューがない)ことに気づきました。この発見を確認するために、私は1つのダイアログと、コンボボックスコントロールのみを備えたほとんど空のプロジェクトを作成しました。バックグラウンドにコードはありません。
もし私が"Test Dialog"エディターでは、期待どおりに機能します。プログラムを実行すると(デバッグの有無にかかわらず)、上記の動作が得られます。文字セットをUNICODEに変更すると、完全に正常に実行されます。
ちなみに、元のプロジェクトの一部のボタンの外観がマルチバイトに切り替えた後に変更されたことにも気づきましたが、それらの機能はテストしていません。

コンボボックスコントロールの機能が、選択した文字セットによって影響を受けるという既知の理由はありますか?ありがとう。

4

2 に答える 2

1

コードではなく、リソース エディターを使用してドロップダウンにデータを入力していると思いますか? 事前入力されたデータはバイナリ形式でリソース ファイルに保存され、プロジェクトの種類を Unicode からマルチバイトに変更しても変換されません。リソースからすべての文字列を削除し、再入力してみてください。

于 2010-11-30T22:30:33.887 に答える
0

リソース エディターでドロップダウン ボックスのサイズを明示的に変更することで、問題を解決できました。私の UNICODE バージョンでは、すべてのエントリに対応するために、リソース エディタで明示的に設定されたものからドロップダウン ボックスが自動的に拡大されるため、これを行う必要があることに気づきませんでした。マルチバイト版では自動拡大しません。

于 2010-12-01T18:15:48.977 に答える