CListCtrl 포커스 해제시 selection color 유지하기
2015. 8. 21. 13:25ㆍIT-개발/winapi 및 MFC
반응형
ㅠㅠ.. 오랫만에 또 삽질 함... 것두~ 인터넷에 올려진 가짜 자료들로 인해~~
구글링해보면~ "CListCtrl 포커스 해제시 selection color 유지하기" 요 제목으로
올려진 코드가 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | afx_msg void OnCustomDraw(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR; switch (lplvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYITEMDRAW; break ; case CDDS_ITEMPREPAINT: { *pResult = CDRF_DODEFAULT; POSITION pos = GetFirstSelectedItemPosition(); int nSel = GetNextSelectedItem(pos); int row = ( int )lplvcd->nmcd.dwItemSpec; if ( row == nSel ) { lplvcd->clrText = GetSysColor(COLOR_HIGHLIGHTTEXT); lplvcd->clrTextBk = GetSysColor(COLOR_HIGHLIGHT); } else { lplvcd->clrText = RGB(0,0,0); lplvcd->clrTextBk = RGB(255,255,255); } } break ; default : *pResult = CDRF_DODEFAULT; break ; } } |
단, tree 스타일에 LVS_SHOWSELALWAYS 속성이 있으면 안된다.
(control property -> Always show selection = false)
=> 이거??? 않된다.!!!!!!!!! 자기들이 해보지도 않고~ 올리고~.. 짱남~
Dialog에 버튼이나 다른거 UI 클릭해버리면 Focus 잃으면서 Selection Color 유지 못함~~
근데~ 구글링 하면 이 sample 코드만 두르륵~ Test 해봅시다~
그러다가 코드구루에서 외국인 형님이 되는거 올려줌~
http://forums.codeguru.com/showthread.php?396804-CListCtrl-selection-color
여기에 올려진 소스 SelectList2.zip
활용하세요~ 이건 잘 됩디다... CDDS_ITEMPREPAINT | CDDS_SUBITEM 이런게 뭐냐~ 이런건
이글 보는 분들이 양심상 알아서 찾아볼 거라 생각해여~ 모르는 나도 문제지만~ 잘못된걸 올리는 사람들도
좀 그렇네요~~
'IT-개발 > winapi 및 MFC' 카테고리의 다른 글
DLL 만들때, 정적 라이브러리에서 MFC 사용 !!!(펌) (0) | 2015.09.24 |
---|---|
특정 폴더를 한번에 삭제하기(폴더안 파일까지 포함) [펌] (0) | 2015.09.18 |
잘못된 인수가 발견되었습니다(An invalid argument encountered) (0) | 2015.08.18 |
Kernel Object / Object Handle (펌) (0) | 2015.08.18 |
CreateEvent 분석...(펌) (0) | 2015.08.11 |