2010-11-30 23 views
0

コンボボックスコントロールを使用するVisual Studio 2005 C++ MFCプロジェクトがあります。プロパティType = Dropdown。プロジェクトはもともとUNICODEにあり、コンボボックスコントロールは期待どおりに機能しました。ユニコードからマルチバイト文字セットに文字セットを変更して、ナショナルインスツルメンツのMeasurement Studioである特別なエンジニアリングパッケージで利用可能なクラス/ライブラリと互換性を持たせる必要がありました。これを実行すると、コンボボックスが適切に機能しなくなる(つまりドロップダウンメニューが表示されない)ことに気付きました。この発見を確認するために、私は1つのダイアログとその上のコンボボックスコントロールだけでほとんど空のプロジェクトを作成しました。背景にコードはありません。
エディタでI "Test Dialog"が正常に動作します。プログラムを実行すると(デバッグの有無に関係なく)、私は上記の動作を得ます。文字セットをUNICODEに変更すると、完全に正常に動作します。
私はまた、元のプロジェクトのいくつかのボタンの外観がマルチバイトに切り替わった後に変更されたことに気付きましたが、その機能はテストしませんでした。Visual Studio C++コンボボックスコントロールがマルチバイト文字セットで動作しません

コンボボックスコントロールの機能が選択した文字セットの影響を受ける理由は何ですか?ありがとう。

答えて

1

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

+0

マーク、応答に感謝します。私は自分の答えごとに問題を解決することができました。 – Mike

0

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

+0

これは本当に奇妙です。私は2つのモード間の動作の違いに気づいたことはありませんし、デフォルトのサイズは少なくとも2つの行を示す必要があります。 –

関連する問題