簡體   English   中英

如何在C ++中禁用CComboBox?

[英]How do you disable a CComboBox in C++?

我已經對此進行了廣泛的搜索,而我大約20次提出的答案是使用CWnd :: EnableWindow(FALSE)。 目前,我有:

GetDlgItem(myComboBox)->EnableWindow(FALSE);

而不是禁用ComboBox,現在沒有顯示整個對話框,並且由於它是模式對話框(或者至少我猜是這個原因),整個程序被鎖定,因為如果無法關閉對話框,它不在那里。

有沒有一種方法可以禁用對此框的編輯而不會使其完全消失; 類似於SetReadOnly()對CEdit的作用?

編輯:突然,上述語法第二天早上開始工作。 我仍然不能完全確定為什么它一開始就不起作用。

EnableWindow(FALSE)是正確的調用函數,但是您的語法看起來可能不正確(但是用這么小的示例很難說)。

myComboBoxCComboBox的實例嗎? 如果是這樣,我希望看到:

myComboBox.EnableWindow(FALSE);

或者,使用關聯的資源ID:

((CComboBox*)GetDlgItem(IDC_MY_COMBO_BOX))->EnableWindow(FALSE);

線程問題或重復的資源ID也會引起奇怪的問題。

似乎您正在嘗試從與對話框不同的線程中調用EnableWindow()

您可以嘗試一下,看看是否適合您:

GetDlgItem(myComboBox)->PostMessage(WM_ENABLE, (WPARAM)FALSE);

暫無
暫無

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

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