C++/MFC

C++/MFC

(MFC 꿀팁)MFC에서 TRACE로 파일명, 해당위치 출력하기

MFC에서 TRACE로 현재 파일 __FILE__ 현재 함수 __FUNCTION__ 현재 줄 __LINE__ 을 출력하는 기능을 활용해서 TRACE와 결합해 문제가 발생하는 경우 위치를 정확하게 출력할 수 있다. 방법 1 본좌의 경우 아래와 같이 활용한다. TRACE("[%s %s %s]", __FILE__, static_cast(__LINE__), "문구"); 방법 2 C++ 20 버전 이상이라면 아래와 같이 매크로 없이 정상적인 방법으로 활용도 가능하다. #include #include #include namespace my::lib { void print(std::string_view message, const std::source_location& location) { std::cout

C++/MFC

MFC에서 화면해상도에 반응해서 창 출력하는 방법

MFC에서 CPP 프로그래밍 동적으로 다이얼로그 사이즈를 변경해서 화면 해상도에 맞는 다이얼로그를 출력해보겠습니다. 기존에 OnInitDialog()함수 내에 BOOL CAboutDlg::OnInitDialog() 3줄만 입력하시면 화면 크기의 1/4 사이즈의 창을 화면의 정 중앙에 위치 할수 있습니다. int x = GetSystemMetrics(SM_CXSCREEN); // x축 화면 크기 (단위 px) int y = GetSystemMetrics(SM_CYSCREEN); // y축 화면 크기 (단위 px) this->MoveWindow(x/4,y/4,x/2,y/2); // 화면 중앙에 화면의 1/4 사이즈로 배치 함수 설명 ClientToScreen 함수는 지정한 지점의 클라이언트 영역 좌표를 화면..

C++/MFC

Win32와 MFC에서 윈도우 및 내부 아이템 사이즈 픽셀에 정확하게 맞추기

MFC 파일에서 RC 파일을 편집하다 보면 사이즈를 정확하게 Pixel 단위로 맞춰야 하는 경우가 있다. 많은 초보 프로그래머 들이 오른쪽 하단에 적힌 단위로 크기 조절을 하면 된다고 생각하지만 이는 pixel이 아닌 DLU 라는 단위로서 폰트 평균 높이 값이 8이고 평균 높이 값이 4일때 1DLU = 1pixel 인 되는 경우가 있고 이도 해상도에 따라 달라질수 있으며 https://devblogs.microsoft.com/oldnewthing/20180510-00/?p=98725 On the difficulty of getting pixel-perfect layout in Win32 dialog templates That's not what it's for. devblogs.microsoft.com ..

C++/MFC

MFC에서 다이얼로그 폰트 사이즈 찾아오기

MFC에서 코딩을 통해 프로그램 실행중 다이얼로그 폰트 사이즈를 받아와 봅시다. 실행중이 아니라면 쉽게 찾아서 바꿀수 있는 폰트 사이즈 실행중에도 쉽게 바꿀수 있습니다. 방법 LOGFONT LogFont; // 임의로 정한 다이얼로그 아이디 값 MY_DLG_ID // GetFont() 폰트를 찾아서 // GetLogFont(&LogFont)를 가져옵니다. GetDlgItem(MY_DLG_ID)->GetFont()->GetLogFont(&LogFont); // 굵기 조절 LogFont.lfWeight = 700; // 사이즈 조절이 가능합니다. LogFont.lfHeight = 12; lfHeight : 폰트 사이즈 lfWeight : 폰트 굵기 폰트 사이즈를 키우면 다이얼로그 사이즈도 변하는 부분 유의 ..

C++/MFC

MFC 리소스로 만든 다이얼로그 사이즈 변경

MFC에서 CPP 프로그래밍 동적으로 다이얼로그 사이즈를 변경 방법 1 다이얼로그 윈도우 사이즈와 위치를 직접 정한다. MoveWindow(int x, int y, int Width, int Height); 방법 2 기존의 다이얼로그 윈도우 사이즈와 위치를 참조해 작성한다. 아래 코드는 사각형 위치에 x축과 y 축 모두 10을 더하고 너비와 높이에 모두 10을 더한 경우임 CRect rec; GetWindowRect(&rec); int Dif1 = 10; int Dif2 = 10; int Dif3 = 10; int Dif4 = 10; MoveWindow((rc.left + Dif1), (rc.top + Dif2), (rec.Width() + Dif3), (rec.Height() + Dif4)); 인자값 ..

kimc
'C++/MFC' 카테고리의 글 목록