본문 바로가기

프로그래밍/MFC

MFC 정적빌드 설정하기 핏 재배포 패키지 걷어내기 기본적으로 MFC 프로젝트를 만들게되면 위와 같이 "공유 DLL에서 MFC 사용"으로 설정되어 있어요. 이 설정은 무엇이냐? 바로 비주얼스튜디오로 작업된 MFC 프로젝트에 한해서 시스템에 설정되어 있는 DLL을 참조하겠다는 거죠 시스템에 설정되어 있는 DLL을 참조하게 되면 시스템 DLL에 의해서 의존성을 가지게 되나 출력되는 EXE 파일의 용량을 획기적으로 줄일 수 있죠. 다만 시스템 DLL의 영향을 받으므로 Visual Studio 2015 버전을 사용하여 만들었다면 Visual Studio 2015 재배포 패키지 x86, x64 버전을 설치해주셔야 합니다. 아니라면 실행될 때마다 DLL이 없네요..ㅠㅠ 하는 DLL을 찾아다가 system32 경로 또는 sysWow64 경로에 넣어 주셔야 해요 그러므.. 더보기
MFC 다이알로그 트레이 아이콘 등록 및 만들기 MFC로 트레이 아이콘 만들려면Shell_NotifyIcon 함수만 사용하면 됩니다. { NOTIFYICONDATA nid; ZeroMemory(&nid, sizeof(nid)); nid.cbSize = sizeof(nid); nid.uID = 0; nid.hWnd = m_hWnd; nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); wsprintf(nid.szTip, "TestTray"); //nid.uCallbackMessage = WM_TRAY_NOTIFICATION; BOOL ret = ::Shell_NotifyIcon(NIM_ADD, &nid); } nid.uCallbackM.. 더보기
[MFC] CImage 이용하여 외부 이미지 출력하기 이번에 해볼건 외부 이미지를 불러와 출력해보는 겁니다.!! 우선은 MFC에서는 CImage를 이용하여 가지고오는게 제일 쉬운거 같더군요.. 뭐 이런 방법 저런 방법 많겠지만. 저는 쪼밥 개발자니!! 가장 쉬운걸로 뷰니뭐니 복잡하니 다이알로그에 Static 컨트롤 하나와 button 컨트롤 하나 올려줍니다. Static 컨트롤은 ID를 변경 해주시고 멤버 변수 추가를 해줍니다. 그리고 CImage 멤버 변수 하나 선언해주면 준비는 끝 CImage는 #include 꼭 추가 해주셔야 됩니다. 그리고 마지막으로 버튼 이벤트에 위의 코드를 추가하면 똭! 하니 아래와 같이 외부 이미지를 쉽게 불러 옵니다. 간단히 코드를 설명하자면 DC를 먼저 구해오고~ Load로 이미지를 불러오고 불러온 이미지를 DC에 그리겠다.. 더보기
[MFC] 그림판 기본 그리기 기능 작업 선 MoveTo, LineTo사각형 Rectangle타원 Ellipse호 Arc부채꼴 Pie그리는 기능에 대해선 이 정도의 함수만 알면 기본적으로 구성 할 수 있다. 더보기
[MFC] ComboBox 리스트 전체 삭제 컨트롤 변수명.ResetContent() 하면 전체 삭제 더보기
[MFC] 다이알로그 키 조작 우선 헤더에virtual BOOL PreTranslateMessage(MSG *pMsg) 선언 해주고메인에BOOL 다이알로그::PreTranslateMessage(MSG *pMsg){if( pMsg->message == 키메세지){작업 }return CDialog::PreTranslateMessage(pMsg);} 뭔가 키를 막고 싶다면 키값에 대해 리턴값을 TRUE로 주기만 하면된다. 더보기
[MFC] 다이알로그 숨기기 BOOL Class::SHowWindow(int nshow) {m_bShowStatus = (nCmdshow==SW_SHOW);return (GetSafeHwnd()) ? ShowWindow(nCmdshow) :TRUE;} 실제 사용할 때 SHowWindow(SW_HIDE); 더보기
[MFC] 중복실행 방지 코드 HANDLE m_hMutex = CreateMutex(NULL, FALSE, "프로세스 이름");if(GetLastError() == 0xB7){CloseHandle(m_hMutex);exit(1);} 더보기