-
MFC 메인 다이얼로그 실행하자마자 숨기기
mfc 다이얼로그 기반 프로젝트에서 메인 다이얼로그를 실행하는 순간부터 숨기고 싶을 때가 있다. OnInitDialog에서 SHOW_HIDE로 숨기면, 깜빡이면서 다이얼로그가 잠깐 나타났다가 숨겨지게 된다. 그래서 그 방법 보다는 WM_WINDOWPOSCHANGING 메시지를 추가하여 다이얼로그를 숨기는 방법이 좋다. 헤더파일(.h) public: afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos); 소스파일(.cpp) BEGIN_MESSAGE_MAP(CMyDialog, CDialog) ON_WM_WINDOWPOSCHANGING() END_MESSAGE_MAP() void CMyDialog::OnWindowPosChanging(WINDOWPOS* lpwndpos) { lpwndpos->flags &= ~SWP_SHOWWINDOW; CDialog::OnWindowPosChanging(lpwndpos); }
-
MFC 다이얼로그 선언되지 않은 식별자입니다
mfc 다이얼로그 리소스를 추가하고, 클래스 파일을 생성했을 때, 다음과 같은 에러를 만나는 경우가 있다. 식별자 "IDD_XXXXX"이(가) 정의되어 있지 않습니다. 'IDD_XXXXX' : 선언되지 않은 식별자입니다. 이런 경우, 다이얼로그가 정의되어있는 resource 헤더를 추가해주면 해결된다. 소스에 다음 헤더를 추가해주자. #include "resource.h"
-
MFC Control 배경(background) color 투명하게 바꾸기
mfc 다이얼로그는 기본적으로 바탕색이 회색입니다. 그런데 UI를 꾸미다보면 흰색 테두리가 있는 이미지를 자연스럽게 다이얼로그에 입히고 싶거나 할 때 다이얼로그 색을 흰색 바탕으로 해줄 수 있습니다. 헤더파일(.h) afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 소스파일(.cpp) BEGIN_MESSAGE_MAP(CLoadingDlg, CDialog) ON_WM_CTLCOLOR() END_MESSAGE_MAP() HBRUSH CLoadingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); UINT nID = pWnd->GetDlgCtrlID(); switch (nID) { case IDC_STATIC_LOADING: case IDC_PIC_LOADING: pDC->SetBkMode(TRANSPARENT); hbr = (HBRUSH)GetStockObject(NULL_BRUSH);; break; } return hbr; }
-
Unicode환경에서의 CString to LPWSTR
Unicode환경에서 CString을 LPWSTR로 형변환 하는 방법입니다. LPWSTR ConvertToUnicode(CString cString) { int nBufSize = cString.GetLength() + 1; LPWSTR lpws = new wchar_t[nBufSize]; if (lpws != NULL) { #if defined(_UNICODE) lstrcpy(lpws, cString); // If Unicode is defined, just copy the string. #else // mbstowcs() would work here as well... MultiByteToWideChar(CP_ACP, 0, cString, nBufSize, lpws, nBufSize * 2); #endif // _UNICODE } return lpws; // Caller must delete! }
-
MFC 다이얼로그 아이콘 변경 및 추가
MFC 다이얼로그의 아이콘을 변경하고 추가하는 방법입니다. Source Code BOOL TestApp::OnInitDialog() { HICON hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_MAIN_ICON)); //icon 변경 this->SetIcon(hIcon, FALSE); //icon 셋팅 }