본문 바로가기

[MFC] 다이얼로그 사이즈 조절 관련 함수들 다이얼로그를 이용한 작업 도중에 생긴 답답했던 내용들을 정리합니다. * 미션: 다이얼로그를 처음 띄울때 화면의 최대화 사이즈로 키우기. *어디를 수정해야 할까? 1)첫시도: mfc의 리소스의 dialog의 속성을 수정하여 해결하려 하였으나 못찾음 ㅠ.ㅠ 2)Dialog를 생성하고 DoModal을 실행하기 이전에 코드를 수정해 보기 : 실행시 죽어버림 ㅠ.ㅠ 3)dialog의 OnInitDialog에서 설정함 -> 처리됨 * 어떻게 수정했을까? 먼저 윈도우 조절 관련 함수들을 찾아보니. ModifyStyle SetWindowPos MoveWindow 등으로 조절할 수 있다. (자세한 내용은 MSDN참조) 그리고 좌표를 불러오는 함수들에는 GetWindowRect() : 윈도우 좌표불러오기 GetSystem.. 더보기
[MFC] 다이얼로그에 CView 동적 생성 다이얼로그에 CView에서 상속받은 클래스를 붙이려면 먼저 CFrameWnd에 CView를 붙이고 그 CFrameWnd를 다이얼로그에 붙이면 가능합니다. CView 같은경우는 독립적으로 윈도우를 구성하기 보다는 CFrameWnd의 차일드 윈도우로 사용될 목적으로 만든어진 클래스이기 때문에 Frame에 안붙일경우 문제가 많습니다. 개인적인 생각으로는 특별히 CView을 사용해야할 이유가 없다면 CWnd에서 바로 상속받은 클래스를 다이얼로그에 붙이는것이 좋지 않을까 합니다. CFrameWnd m_wndFrame; CView *pView; if(m_wndFrame.m_hWnd) m_wndFrame.DestroyWindow(); CRect rectClient; GetClientRect(rectClient); m.. 더보기
[MFC] 버튼의 동적생성 [질문 내용] mfc위자드로 CView로 상속받은 (SDI)프로젝트를 생성했습니다. 그리고 뷰에 1행에 동적으로 버튼을 행맞춰서 만들고 싶은데, 아무리 생각해도 모르겠군요. 동적으로 말입니다. 4개든 10개든.... 그리고 각 버튼을 눌렀을때 메시지박스가 나와 "현재버튼은 1입니다." 같이 나왔으면 합니다. 다시말해 이벤트 핸들러도 동적으로 만들어야 합니다. 너무나 어려워 질문드립니다. [답변 내용] 안녕하세요~! 먼저 동적으로 버튼을 5개 생성시킨다고 가정하고 해더파일에 #define MAX_BUTTON_COUNT 5 라고 먼저 정의하고, 버튼을 동적으로 만들어서 사용해야하니까 동적으로 생성된 버튼을 관리할 변수를 선언해야겠죠? 클래스 선언부에 말이죠!! private: CButton *mp_test_.. 더보기