MFC 비 모드형 대화상자 1. CDialog::DoModal() 대신 CDialog::Create() 로 대화상자 생성 2. CDialog::EndDialog() 대신 CDialog::DestroyWindow() 로 대화상자 닫기 3. 모드형 대화상자 객체는 대게 스택에 저장되지만 비 모드형 대화상자는 힙에 생성된다. (스택에 저장되면 범위를 벗어나면 소멸되므로 대화상자를 계속 유지할 수 없기 때문에 힙에 생성) 비 모드형 대화상자를 작성하는 표준 방법은 없기때문에 위 규칙을 참조하여 구현한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ..
&, 레퍼런스 연산자 활용 멤버 변수를 int형과 CString 형으로 쓰다가 구조체로 만들거나 데화상자를 띄어 데이터를 변경해야 하도록 클래스를 포장하는 경우 이미 두 변수를 사용하고 있는 코드를 구조체나 클래스에 맞는 형태로 변경해줘야 하는데 그러면 시간이 많이 들고 서식이 길어져 가독성이 떨어지므로 이때 레퍼런스를 사용하면 간단히 해결된다. Doc/View 구조에서 데이터가 변경되면 Doc객체의 SetModifiedFlag()를 호출해야 하므로. 레퍼런스로 자동화 처리할 경우 이 부분은 따로 처리해야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 ..
DDX/DDV DDX : Dialog Data eXchange 멤버변수와 컨트롤의 값을 연결시켜준다. UpdateData(FALSE) : 멤버변수 값을 컨트롤에 전달 UpdateData(TRUE) : 컨트롤의 값을 멤버변수로 전달 (멤버변수를 기준으로 TRUE면 값을 가져옴) DDV : Dialog Data Validation 컨트롤에 입력한 값의 타당성을 검사 다이얼로그 추가 (ID = IDD_DIALOG1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 5..
대화상자 템플릿 대화상자 자체와 포함된 컨트롤에 대한 모든 정보를 가지고 있는 이진 데이터로서 리소스 형태로 실행 파일에 포함된다. 위 화면과 같은 데회상자 편집기의 리소스 편집기 내용은 아래와 같다. 1 2 3 4 5 6 IDD_MFCAPPLICATION5_FORM DIALOGEX 0, 0, 320, 200 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD FONT 9, "MS Shell Dlg", 0, 0, 0x1 BEGIN LISTBOX IDC_LIST1,7,7,66,84,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP END Colored by Color Scripter cs 이와 같이 텍스트 형태로 기술한 *.RC ..