我不知道如何禁用CListCtrl選擇選項。我想覆蓋CListCtrl類方法或處理任何窗口命令?謝謝。如何禁用CListCtrl選擇選項
3
A
回答
7
如果要停止用戶選擇CListCtrl
中的項目,則需要從CListCtrl
派生自己的類併爲LVN_ITEMCHANGING
通知添加消息處理程序。
所以,一個例子類CMyListCtrl
會有一個頭文件:
MyListCtrl.h
#pragma once
class CMyListCtrl : public CListCtrl
{
DECLARE_DYNAMIC(CMyListCtrl)
protected:
DECLARE_MESSAGE_MAP()
public:
// LVN_ITEMCHANGING notification handler
afx_msg void OnLvnItemchanging(NMHDR *pNMHDR, LRESULT *pResult);
};
然後MyListCtrl.cpp:
#include "MyListCtrl.h"
IMPLEMENT_DYNAMIC(CMyListCtrl, CListCtrl)
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
ON_NOTIFY_REFLECT(LVN_ITEMCHANGING, &CMyListCtrl::OnLvnItemchanging)
END_MESSAGE_MAP()
void CMyListCtrl::OnLvnItemchanging(NMHDR *pNMHDR, LRESULT *pResult)
{
// LVN_ITEMCHANGING notification handler
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
// is the user selecting an item?
if ((pNMLV->uChanged & LVIF_STATE) && (pNMLV->uNewState & LVNI_SELECTED))
{
// yes - never allow a selected item
*pResult = 1;
}
else
{
// no - allow any other change
*pResult = 0;
}
}
這樣你就可以,例如,添加一個正常的CListCtrl
到對話框中,然後爲它創建一個成員變量(默認情況下它將是CListCtrl
)然後編輯對話框的頭文件到#include "MyListCtrl.h
並將列表控制成員變量從CListCtrl
更改爲CMyListCtrl
。
+0
謝謝@羅格羅蘭 – jack
相關問題
- 1. 如何根據另一選擇選項禁用選擇選項
- 2. 如何禁用多重選擇選項
- 3. 禁用選擇選項
- 4. 禁用選擇選項
- 5. UItextView禁用選擇選項
- 6. 關於選擇MFC CListCtrl項目
- 7. 如何在選擇中禁用並選擇選項的樣式?
- 8. 如何根據其他選擇的選項禁用選擇?
- 9. jQuery在選擇框中自動選擇選項。如何禁用?
- 10. CListCtrl - 如何啓用多選
- 11. 如何根據選擇的其他選項禁用選擇選項?
- 12. 禁用MFC中CListCtrl中多項選項上的按鈕
- 13. 如何禁用/啓用選擇(選項)值複選框基地
- 14. 如果選擇選項,則禁用選擇的腳本
- 15. 如何在複選框選擇上禁用PrimeFaces選項卡
- 16. 如何禁用選擇框而不取消選中選項?
- 17. 啓用在選擇中禁用選項
- 18. 使用Angularstrap禁用選擇框選項
- 19. 如果只有2個選項,jquery選擇和禁用選項
- 20. 如果選項值已存在,則禁用選擇選項
- 21. 如何禁用選擇中的錯誤選項取決於選定的選項?
- 22. 禁用IE7選擇框選項
- 23. jquery禁用/刪除選項上選擇?
- 24. 多重選擇,禁用選項
- 25. jQuery的選擇上禁用選項
- 26. zf2窗體禁用選擇選項
- 27. 禁用iOS Safari中的選擇選項
- 28. 帶禁用選項的jQuery選擇框
- 29. 禁用選項選擇按鈕
- 30. 如何禁用MD-選擇
[CListCtrl](http://msdn.microsoft.com/en-us/library/hfshke78(v = vs.100).aspx)是用於管理Windows公共控件ListView控件的類。像所有的Windows公共控件一樣,您可能必須提供通知處理程序來執行您想要(或不想)完成的任何操作或缺少的操作。獲取一本關於MFC的書或者[試試這個](http://bit.ly/10A1ihY)。 – WhozCraig