본문 바로가기

MFC

List Ctrl 아래로 정렬 시키기 리스트 뷰를 추가되는 데이터 때문에 항상 아래를 보이게 해야 하는 상황이 나왔다 데브피아를 찾아보니 EnsureVisible() 쓰라능~! 라고 나와있길레....... pListView->SetScrollPos(SB_VERT, pListView->GetListCtrl().GetItemCount()); pListView->GetListCtrl().EnsureVisible(pListView->GetListCtrl().GetItemCount() - 1, true); 이렇게 써봤더니.. 엄청난 깜박임이 발생하였다 |||orz 그래서 다시 찾은 방법이 pListView->SendMessage(WM_VSCROLL,SB_BOTTOM,NULL); 간단하게 해결 되는군;; 정보출처 : 현덕군 더보기
특정 컨트롤 시스템키 조합 이벤트 설정 BOOL CFileManagerDlg::PreTranslateMessage(MSG* pMsg) { if( pMsg->hwnd == m_List_Explorer.m_hWnd ) { if(pMsg->message == WM_KEYDOWN) { if(::GetKeyState(VK_CONTROL) wParam == 'A') { for (int i=0; i 더보기
StretchBlt 이미지 축소시 깨짐현상 방지 StretchBlt()를 이용할 때 기본으로 사용하면서 축소하면 엄청난 깨짐 현상이 보인다 이러한 현상을 방지하기 위해 SetStretchBltMode(hdc, iMode)로 iMode를 정의해 줘야 한다 (출처 : 데브피아 - 안영석 님) 찾아보니 StretchBlt() API를 사용할 때 SetStretchBltMode(hdc, iMode); 로 mode를 정해줄 수 있네요.. iMode 값은 다음 중 한개가 될 수 있구요. * BLACKONWHITE : 논리 AND연산 수행/흰색배경에 검정색으로 되어있는 흑백 비트맵에 적당. * WHITEONBLACK : 논리 OR연산 수행/흰색 배경에 검정색으로 되어있는 흑백 비트맵에 적당. * COLORONCOLOR : 논리연산 하지 않음/컬러 비트맵에서 가장 .. 더보기
API를 이용한 Error 메시지 확인 프로그램 코딩시에 메소드로부터 리턴받는 에러메시지를 많이 볼 수 있다 그러나 대부분의 에러 메시지가 TRUE or FALSE 로 나뉘어 지기 때문에 도저히 이해할 수 없다 하지만 우리의 친절한 WINAPI씨가 다음과 같은 것을 제공한다 GetLastError(); DWORD GetLastError(void); DWORD형으로 에러 메시지를 되돌려 준다 MSDN에 DWORD형으로 에러 메시지를 볼 수 있게 해줬지만.. 일일이 찾기 귀찮다 -ㅂ- 따라서 다음과 같은 소스를 작성해주자 void ErrorMessage(char * strMessage) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYS.. 더보기
CImageList 인덱스 흉내내기 CImageList를 이용해서 인덱스 흉내내기 CImageList를 이용해서 ListCtrl에 썸네일을 만들어 넣어주는 기능을 구현한 적이 있었다 처음 설계에는 ListCtrl이 업데이트 될 때 마다 썸네일을 생성하는 방법을 썼는데.... 무척 느렸다. (절망할 정도로.;) List Data Load -> Thumbnail Image 생성 -> CImageList 추가 -> ListCtrl에 표시 (남한테 보여주기 민망할 정도다) 그래서 개선한 방법이 썸네일 이미지를 쓰레드로 생성 하는 방법 이었다 List Data Load -> CImageList 추가 -> ListCtrl에 표시 -> Thumbnail Image 생성 (Thread 동작) -> 그나마 속도가 개선이 되었지만, 매번 썸네일 쓰레드가 동.. 더보기