?? checklistctrl.cpp
字號:
// CheckListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "CheckLCDemo.h"
#include "CheckListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckListCtrl
CCheckListCtrl::CCheckListCtrl() : m_blInited(FALSE)
{
}
CCheckListCtrl::~CCheckListCtrl()
{
}
BEGIN_MESSAGE_MAP(CCheckListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CCheckListCtrl)
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemChanged)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckListCtrl message handlers
void CCheckListCtrl::OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLISTVIEW* pNMLV = (NMLISTVIEW*)pNMHDR;
*pResult = 0;
if ( m_blInited && LVIF_STATE == pNMLV->uChanged)
{
BOOL blAllChecked = TRUE;
int nCount = GetItemCount();
for(int nItem = 0; nItem < nCount; nItem++)
{
if ( !ListView_GetCheckState(GetSafeHwnd(), nItem) )
{
blAllChecked = FALSE;
break;
}
}
HDITEM hdItem;
hdItem.mask = HDI_IMAGE;
if (blAllChecked)
hdItem.iImage = 2;
else
hdItem.iImage = 1;
VERIFY( m_checkHeadCtrl.SetItem(0, &hdItem) );
}
}
BOOL CCheckListCtrl::Init()
{
if (m_blInited)
return TRUE;
CHeaderCtrl* pHeadCtrl = this->GetHeaderCtrl();
ASSERT(pHeadCtrl->GetSafeHwnd());
VERIFY( m_checkHeadCtrl.SubclassWindow(pHeadCtrl->GetSafeHwnd()) );
VERIFY( m_checkImgList.Create(IDC_LIST4, 16, 3, RGB(255,0,255)) );
int i = m_checkImgList.GetImageCount();
m_checkHeadCtrl.SetImageList(&m_checkImgList);
HDITEM hdItem;
hdItem.mask = HDI_IMAGE | HDI_FORMAT;
VERIFY( m_checkHeadCtrl.GetItem(0, &hdItem) );
hdItem.iImage = 1;
hdItem.fmt |= HDF_IMAGE;
VERIFY( m_checkHeadCtrl.SetItem(0, &hdItem) );
m_blInited = TRUE;
return TRUE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -