Showing posts with label CListCtrl. Show all posts
Showing posts with label CListCtrl. Show all posts
2015/05/23
CListCtrl 에서 Check 상태 변화 확인 하기
CListCtrl에서 Check Box를 보이게 한 후 상태 변화를 확인하기 위해 LVN_ITEMCHANGED 의 메시지 핸들러의 파라메터를 확인해 보니 Item의 Uncheck와 check 가 각각 4096(0x1000) 과 8192(0x2000) 값으로 전달 되었다.
Original Post : http://neodreamer-dev.tistory.com/744
void CDlgTestDlg::OnLvnItemchangedList2(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
if(pNMLV->uChanged & LVIF_STATE)
{
if( (pNMLV->uOldState & 0x1000) && (pNMLV->uNewState & 0x2000) )
{
TRACE("Checked Item : %d\n", pNMLV->iItem);
}
else if( (pNMLV->uOldState & 0x2000) && (pNMLV->uNewState & 0x1000) )
{
TRACE("Unchecked Item : %d\n", pNMLV->iItem);
}
}
*pResult = 0;
}
Original Post : http://neodreamer-dev.tistory.com/744
Labels:
checkbox
,
CListCtrl
,
LVN_ITEMCHANGED
,
MFC
,
TistoryOldPost
2012/05/14
[MFC] CListCtrl 모든 컬럼 삭제하기
CListCtrl 의 모든 컬럼을 삭제하는 코드이다.
첫 번째 컬럼을 삭제하고 다머지 컬럼이 이동 되므로 0번 컬럼을 실패할 때까지 계속 삭제한다.
첫 번째 컬럼을 삭제하고 다머지 컬럼이 이동 되므로 0번 컬럼을 실패할 때까지 계속 삭제한다.
<
while ( m_list.DeleteColumn(0) );
Original Post : http://neodreamer-dev.tistory.com/651
2010/03/26
리스트 컬럼크기를 자동으로 설정하기
<
CHeaderCtrl* pHeader = m_ListCtrl.GetHeaderCtrl();
int numcol = pHeader->GetItemCount();
for (int col = 0; col < numcol; col++)
{
m_ListCtrl.SetColumnWidth(col,LVSCW_AUTOSIZE);
}
Original Post : http://neodreamer-dev.tistory.com/393
Labels:
AutoSize
,
CHeaderCtrl
,
CListCtrl
,
LVSCW_AUTOSIZE
,
TistoryOldPost
,
리스트
2008/12/22
CListCtrl 에서 전체 Row 선택 설정하기
CListCtrl 에서 아이템을 선택하면 아이템 부분만 선택이 되고 SubItem 부분은 선택이 되지 않는데 이때 CListCtrl 에 LVS_EX_FULLROWSELECT 속성을 추가해 주면 SubItem 부분도 선택이 된다.
Original Post : http://neodreamer-dev.tistory.com/224
m_lstLibrary.SetExtendedStyle(
m_lstLibrary.GetExtendedStyle()
| LVS_EX_FULLROWSELECT
);
Original Post : http://neodreamer-dev.tistory.com/224
CListCtrl의 Header 비활성화 - 크기 조절 및 클릭 방지
CListCtrl 사용시에 각 컬럼의 크기를 고정해 놓고 사용자가 임의로 크기를 변경하지 못하도록 막을때 사용하면 된다.
이 방법은 윈도우를 사용하지 못하게 하는 방법으로 컬럼헤더에서 클릭이 필요한 경우에는 사용할 수 없다.
이 방법은 윈도우를 사용하지 못하게 하는 방법으로 컬럼헤더에서 클릭이 필요한 경우에는 사용할 수 없다.
// 방법 1
HWND lvHeader;
lvHeader = ::FindWindowEx(m_lstMachine.GetSafeHwnd(),
NULL, _T("SysHeader32"), _T(""));
::EnableWindow(lvHeader, 0);
// 방법 2
CHeaderCtrl* pHeader = (CHeaderCtrl*) m_listctrl.GetDlgItem(0);
::EnableWindow(pHeader->GetSafeHwnd(), 0);
Original Post : http://neodreamer-dev.tistory.com/223
2008/01/17
List Control의 배경색 제어하기
밋밋한 배경의 리스트 컨트롤을 배경을 제어하여 좀 더 보기 좋게 만드는 방법이다.

CListCtrol의 NM_CUSTOMDRAW 의 메세지 핸들러를 작성하면 된다
Source Code
Original Post : http://neodreamer-dev.tistory.com/40
CListCtrol의 NM_CUSTOMDRAW 의 메세지 핸들러를 작성하면 된다
Source Code
void CDlg::OnNMCustomdrawListControl(NMHDR *pNMHDR,
LRESULT *pResult)
{
LPNMCUSTOMDRAW pNMCD;
pNMCD = reinterpret_cast(pNMHDR);
*pResult = 0;
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
int iRow = (int)lplvcd->nmcd.dwItemSpec;
switch(lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
{
*pResult = CDRF_NOTIFYITEMDRAW;
return;
}
// Modify item text and or background
case CDDS_ITEMPREPAINT:
{
lplvcd->clrText = RGB(0,0,0);
// If you want the sub items the same as the item,
// set *pResult to CDRF_NEWFONT
*pResult = CDRF_NOTIFYSUBITEMDRAW;
return;
}
// Modify sub item text and/or background
case CDDS_SUBITEM | CDDS_PREPAINT | CDDS_ITEM:
{
if(iRow % 2){
// 홀수열의 배경색 재설정
lplvcd->clrTextBk = RGB(255, 255, 255);
}
else{
// 짝수열의 배경색 재설정
lplvcd->clrTextBk = RGB(230, 230, 230);
}
if (iRow < m_nHighlightedItems)
{
// 조건에 맞을 경우 폰트 색상 변경
lplvcd->clrText = RGB(0, 0, 255);
}
*pResult = CDRF_DODEFAULT;
return;
}
}
}
Original Post : http://neodreamer-dev.tistory.com/40
Labels:
CListCtrl
,
MFC
,
TistoryOldPost
,
Visual C++
,
리스트 배경색
Subscribe to:
Posts
(
Atom
)