簡體   English   中英

Visual Studio C ++組合框控件不適用於多字節字符集

[英]Visual Studio C++ Combo Box Control does not work with Multi-Byte Character Set

我有一個利用Combo-box控件的Visual Studio 2005 C ++ MFC項目。 物業Type = Dropdown 該項目最初在UNICODE中使用,組合框控件按預期工作。 然后,我不得不將字符集從UNICODE更改為多字節字符集,以與特殊工程包(National Instruments的Measurement Studio)中提供的類/庫兼容。 完成此操作后,我注意到組合框將不再正常工作(即沒有下拉菜單)。 為了確認這一發現,我創建了一個幾乎為空的項目,其中只有一個對話框,並且只帶有組合框控件。 后台無代碼。
如果我在編輯器中"Test Dialog" ,它將按預期工作。 如果我運行該程序(無論是否調試),都會出現上述行為。 如果我將字符集更改為UNICODE,則可以正常運行。
另外,我還注意到,切換到“多字節”后,原始項目中某些按鈕的外觀發生了變化,但是我沒有測試它們的功能。

組合框控件的功能會受到所選字符集影響的已知原因嗎? 謝謝。

我想您是使用資源編輯器來填充下拉列表,而不是代碼? 這些預填充的數據以二進制形式存儲在資源文件中,當您將項目類型從Unicode更改為Multibyte時,將不會進行轉換。 嘗試從資源中刪除所有字符串,然后重新輸入它們。

通過在資源編輯器中顯式調整下拉框的大小,我能夠解決此問題。 我沒有意識到必須這樣做,因為在我的UNICODE版本中,它將自動放大資源編輯器中顯式設置的下拉框,以容納所有條目。 在多字節版本中,它不會自動放大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM