본문 바로가기

프로그램 Alt+F4 감지 프로그램에서 Alt+F4를 입력받으면 중간에 어떠한 일을 수행하고 종료를 해야 하는 경우가 있다 그 때 Alt+F4 를 감지해서 특정 일을 수행 한 후 종료하게 하려면 다음과 같이 작성해라 BOOL CDirectVideoDialog::PreTranslateMessage(MSG* pMsg) { // 중간 생략 if(pMsg->message == WM_SYSKEYDOWN && pMsg->wParam == VK_F4) { if (::GetKeyState(VK_MENU) < 0) { //여기에 할 일을 작성 return TRUE; } } // 중간 생략 } PreTranslateMessage에서 감지 하여도 되지만 WM_SYSCOMMAND에서도 처리할 수 있습니다. 아래와 같이 하면 프로그램 오른쪽 위에 있는 .. 더보기
리스트컨트롤 아이템 자동 선택 하기 리스트컨트롤을 사용하는데 자동으로 선택해와야 하는 경우가 생겨 찾아보니 데브피아에 저런 내용이 검색되었다 저도 같은 내용을 검색 하다가 다음과 같은 내용을 찾았습니다. 즐프.. ^^; ListCtrl::SetSelectionMark(int i) : i번째 item을 선택하는 것은 맞습니다. 단지 포커스까지 주지 않기때문에 표시(파란줄)가 되지 않을 뿐이지 내부적으로 현재 선택된 아이템은 i번째 아이템입니다. m_list1.SetItemState(i, LVIS_SELECTED, LVIS_SELECTED) : 이것만 사용하시면 문제가 발생할 수 있습니다. 내부적으로 자동 선택된 아이템의 인덱스와 표시(파란줄)된 아이템의 인덱스가 달라질 수 있거든요.. 표시된 아이템을 삭제하려고 삭제 버튼을 눌렀는데 딴 아이.. 더보기
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); 간단하게 해결 되는군;; 정보출처 : 현덕군 더보기