2010-11-30 16 views
0

我有一個使用組合框控件的Visual Studio 2005 C++ MFC項目。物業Type = Dropdown。該項目最初是在UNICODE中,組合框控件按預期工作。然後,我必須將字符集從UNICODE更改爲多字節字符集,以便與National Instruments的特殊工程包(Measurement Studio)中提供的類/庫兼容。在這樣做時,我注意到組合框將不再正常工作(即沒有下拉菜單)。爲了證實這一發現,我創建了一個大多爲空的項目,只有一個對話框,只有組合框控件。沒有代碼在後臺。
如果我在編輯器中使用"Test Dialog",它按預期工作。如果我運行該程序(無論是否進行調試),我會得到上述行爲。如果我將字符集更改爲UNICODE,它會非常好地運行。
另外,我還注意到,在切換到多字節後,原始項目中某些按鈕的外觀發生了改變,但我沒有測試它們的功能。Visual Studio C++組合框控件不適用於多字節字符集

是否有一個衆所周知的原因,爲什麼組合框控件的功能會受到所選字符集的影響?謝謝。

回答

1

我認爲你正在使用資源編輯器填充下拉列表,而不是代碼?預填充的數據以二進制形式存儲在資源文件中,並且在將項目類型從Unicode更改爲Multibyte時不會進行轉換。嘗試從資源中刪除所有字符串並重新輸入。

+0

馬克,謝謝你的迴應。按照我的答案,我能夠解決問題。 – Mike 2010-12-01 18:16:32

0

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

+0

這真的很奇怪。我從來沒有注意到兩種模式之間的行爲差​​異,默認大小應至少顯示幾行。 – 2010-12-02 05:04:13

相關問題