MFC 6

[MFC] Dialog에서 Enter, ESC 입력 막기

Dialog에서 Enter, ESC 입력 막기 MFC에서 Dialog를 사용할 때 Enter, ESC를 입력하면 Dialog가 닫힙니다. PreTranslateMessage에서 그것을 막을 수 있습니다. 클래스 마법사 > 가상함수 에서 PreTranslateMessage를 추가합니다. BOOL CDlgSample::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN) { if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE) { return TRUE; } } return CDialogEx::PreTranslateMessage(pMsg); } PreTranslateMessage에서는 메시지를..

MFC 2022.03.31

[MFC] AfxMessageBox 알림 띄우기

MFC에서 AfxMessageBox 알림 띄우는 방법 AfxMessageBox(_T("알림")); AfxMessageBox(_T("경고"), MB_ICONSTOP); if (AfxMessageBox(_T("Yes or No"), MB_YESNO | MB_ICONQUESTION) == IDYES) { // Yes } 가장 간단한 방법은 문자열만 파라미터로 넘기는 방법입니다. 두번째는 아이콘 설정을 파라미터로 넘길 수 있습니다. 그리고 버튼 설정을 넘겨 선택한 버튼을 반환받을 수 있습니다. 더 자세한 내용은 아래 링크를 참고하시면 됩니다. https://docs.microsoft.com/ko-kr/cpp/mfc/reference/cstring-formatting-and-message-box-display?v..

MFC 2022.03.31

[MFC] 실행 파일 경로 가져오는 방법 (current file path)

MFC 실행 파일 경로 가져오는 방법 GetModuleFileName 함수를 사용하면 실행 파일 경로를 가져올 수 있습니다. TCHAR path[256] = { 0, }; GetModuleFileName(NULL, path, 256); 이렇게 하면 path에 실행 파일의 절대 경로가 저장됩니다. 여기서 추가로 실행파일이 있는 폴더의 경로를 얻고 싶다면 문자열을 자르면됩니다. CString folderPath(path); folderPath = folderPath.Left(folderPath.ReverseFind('\\')); ReverseFind는 문자열의 끝에서부터 문자를 찾아서 위치를 리턴해줍니다. Left는 문자열의 왼쪽부터 해당 개수만큼의 문자를 잘라냅니다. 즉, 위의 코드는 마지막 '\' 문자의..

MFC 2022.03.30