2014-01-23 70 views
1

所以首先,我有一個CComboxBox,只能通過GetDlgItem(cbID)獲取。這種情況不能改變。如何禁用CComboBox,同時讓它可用於剪貼板複製?

使用此組合框,我可以編輯文本並顯示下拉項目,但我想禁用這些功能。

我只知道如何禁用Windows對象,例如...

函數GetDlgItem(CBID) - > EnableWindow(FALSE);

但是,這將禁用鼠標和鍵盤輸入,這不允許我突出顯示文本並將其複製到剪貼板。

如何禁用一個下拉菜單和可編輯功能,同時讓它可以高亮複製到剪貼板?

+0

使用GetDlgItem()時要小心。它返回一個不應該存儲的臨時指針。 – rrirower

回答

1

組合框樣式可能是CBS_DROPDOWN。如果將樣式卡住到CBS_DROPDOWNLIST,您將刪除嵌入在組合框中的子編輯控件。這將阻止任何人輸入數據。

+0

謝謝,這是禁用鍵盤輸入的好主意,但我也不想擁有下拉功能,該功能仍然存在。 – Vongdarakia

+0

有幾種方法來處理這件作品。您可以設置[CBN_DROPDOWN](http://forums.codeguru.com/showthread.php?444622-How-to-prevent-combo-box-list-appear-when-catching-the-CBN_DROPDOWN-msg&p=1677568#post1677568 )或控件上的按鈕事件。如果您決定使用後者,請確保不要調用基類。這應該會縮短通話時間以降低列表的數量。 – rrirower

+0

我想我明白了。謝謝一堆!這有幫助! – Vongdarakia