Programming/MFC
다이얼로그 창 크기 변경에 따라서 내부 컨트롤 크기도 다이얼로그 사이즈에 따라서 자동으로 변경시켜주고 싶다면 다음과 같이 코드를 작성해본다. void CMyDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); CWnd* pCtl = GetDlgItem(IDC_TREE); if (!pCtl) { return; } CRect rectCtl; pCtl->GetWindowRect(&rectCtl); ScreenToClient(&rectCtl); pCtl->MoveWindow( rectCtl.left, rectCtl.top, cx- 2 * rectCtl.left, cy- rectCtl.top - rectCtl.left, TRUE); r..
mfc 다이얼로그에 Drag and drop을 구현해보자. 윈도우 메세지 WM_DROPFILES를 찾아서 OnDropFiles 함수를 생성한다. OnDropFiles 함수 정의 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 void CDemoDlg::OnDropFiles(HDROP hDropInfo) { int dropFilesCnt = 0; char FilePath[MAX_PATH+MAX_PATH]; dropFilesCnt = DragQueryFileA(hDropInfo, 0xFFFFFFFF, FilePath, MAX_PATH); for (int i = 0; i
CTreeCtrl::Expand BOOL Expand( HTREEITEM hItem, // 확장 트리 항목의 핸들 UINT nCode // 종류의 동작을 나타내는 플래그 ); nCode TVE_COLLAPSE 목록을 축소 TVE_EXPAND 목록을 확장 추가 정보 : https://msdn.microsoft.com/ko-kr/library/hx4e0e58.aspx Expand함수를 이용하여 다음과 같은 함수를 하나 만들고, nCode로 확장/축소 플래그를 설정하도록 한다. 함수 정의 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 void ExpandTreeItem(CTreeCtrl &tree, HTREEITEM hItem, UINT nCode) { HTREEITEM hChild; ..
방법 1. 다이얼로그 리소스 뷰를 연 상태에서 Ctrl + D 를 입력합니다. 그럼 다음과 같이 각 Control 마다 번호가 뜨게 되는데, tab 키를 클릭했을 때 이 번호 순대로 포커스가 이동하게 됩니다. 이 순서를 변경하고 싶다면, 1) tab 키를 눌렀을 때 맨 처음 포커스를 주고 싶은 Control을 더블클릭 합니다. 저는 현재 tab 순서가 2번인 컨트롤을 클릭해보겠습니다. 그러면 다음과 같이 1번으로 바뀝니다. 2) 나머지 컨트롤도 원하는 순서대로 클릭합니다. 3) 다시 Ctrl + D 키를 눌러 tab order 모드를 종료합니다. 방법 2. .rc 파일을 열어서 직접 tab order를 변경하는 방법도 있습니다. 현재 tab order 상태는 다음과 같습니다. 1) .rc 파일을 열어서 ..