탭 컨트롤에 메시지 보내기 1. 메시지 전달해서 보여줄 탭을 선택한다. (1행) 2. 탭 컨트롤의 ID 값, 핸들, 메시지를 저장한다. (3~5행) 3. 탭 정보를 갖는 NMHDR 을 lParam 으로 메시지 전달한다. 1 2 3 4 5 6 7 m_TabCtrl.SetCurSel(0); // 첫번째 탭을 선택한다. NMHDR nmhdr; nmhdr.code = TCN_SELCHANGE; // 메시지 nmhdr.idFrom = IDC_TAB; // 탭 ID nmhdr.hwndFrom = m_TabCtrl.m_hWnd; SendMessage(WM_NOTIFY, IDC_TAB_DANIL, (LPARAM)&nmhdr); // 첫번째 탭으로 바뀐다. Colored by Color Scripter cs
컨텍스트 메뉴(팝업메뉴) 체크 표시 COMMAND_UI 이벤트에서 메뉴 설정이 가능했던걸로 아는데 오늘 해보니 안된다. (마지막 그림 참조) 결국, OnInitDialog() 에서 메뉴 로드하여 멤버변수에 저장하고 WM_CONTEXTMENU 이벤트 처리기에서 팝업메뉴 표시하고 COMMAND_UI 이벤트 처리기에서 강제적으로 해당 메뉴에 체크 표시한다. OnInitDialog() 에서 멤버변수에 메뉴를 저장하고 COMMAND_UI 이벤트에서 멤버변수로 체크표시하려 했으나 메뉴핸들(m_hMenu) 이 NULL 값이 되어 예외발생하여, 다시 서브메뉴를 지정하고 체크표시를 해야했다. 체크 표시에 ID를 사용하면 MF_BYCOMMAND 옵션을 OR연산 추가하고, 순서 번호를 사용할때는 MF_BYPOSITION 옵..
아래 방법은 번거로으니, https://petra.tistory.com/1331 추가> 부분을 참조하면 여백이 없어진다. 1 2 3 4 5 6 IDD_DIALOG_TAB_DAN DIALOGEX 0, 0, 296, 85 STYLE DS_SETFONT | WS_CHILD | WS_SYSMENU FONT 9, "나눔고딕", 400, 0, 0x81 BEGIN CONTROL "",IDC_LIST_DAN,"SysListView32",LVS_REPORT|LVS_ALIGNLEFT|WS_BORDER|WS_TABSTOP,0,0,302,75 END Colored by Color Scripter cs 위 코드는 프로젝트이름.RC 의 리소스 코드로 5행의 끝부분에 0, 0, 302, 75 가 다이얼로그 위에 올려질 실제 위치값..