-
MFC 프로그램 중복 실행 방지
MFC 프로그램의 중복 실행을 방지하는 방법입니다. Dialog base 프로젝트도 [프로젝트명].cpp 파일의 InitInstance() 에 코드를 삽입해 줍니다. Source Code BOOL CTestApp::InitInstance() { HANDLE hMutex = NULL; hMutex = CreateMutex( NULL,TRUE, _T("mtx_running_test_app")); if ( GetLastError() == ERROR_ALREADY_EXISTS ) { AfxMessageBox(_T("프로그램이 이미 실행 중입니다.")); } }
-
MFC 윈도우 최상위에 나타나도록 설정
MFC 윈도우를 최상위에 나타나도록 설정하는 방법입니다. ::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST , 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
-
[링크] Visual C++ 버전별 재배포 패키지 런타임 다운로드
Visual C++ 버전별 재배포 패키지 런타임 다운로드에 관련하여 잘 정리된 사이트입니다. http://zypper.tistory.com/85
-
[스크랩] MFC 트레이 아이콘 잔상 없애기
출처 : http://cpueblo.com/programming/api/contents/197.html Source Code struct TRAYDATA { HWND hwnd; UINT uID; UINT uCallbackMessage; DWORD Reserved[2]; HICON hIcon; }; static HWND FindTrayToolbarWindow() { HWND hWnd_ToolbarWindow32 = NULL; HWND hWnd_ShellTrayWnd; hWnd_ShellTrayWnd = ::FindWindow(_T("Shell_TrayWnd"), NULL); if (hWnd_ShellTrayWnd) { HWND hWnd_TrayNotifyWnd = ::FindWindowEx(hWnd_ShellTrayWnd, NULL, _T("TrayNotifyWnd"), NULL); if (hWnd_TrayNotifyWnd) { HWND hWnd_SysPager = ::FindWindowEx(hWnd_TrayNotifyWnd, NULL, _T("SysPager"), NULL);// WinXP // WinXP 에서는 SysPager 까지 추적 if (hWnd_SysPager) hWnd_ToolbarWindow32 = ::FindWindowEx(hWnd_SysPager, NULL, _T("ToolbarWindow32"), NULL); // Win2000 일 경우에는 SysPager 가 없이...
-
[스크랩] MFC 프로그램 안전하게 종료하는 방법
출처 : https://blog.naver.com/ziralist/8325535 응용 프로그램을 종료한다는 의미는 해당 프로그램의 가장 기본이 되는 윈도우를 종료 시키는 것과 같다. 따라서 MFC로 작성한 응용 프로그램의 기본 골격이 되는 윈도우는 CFrameWnd(CWnd, CDialog) 계열의 클래스일 것이고 이 윈도우를 종료 시키면 응용 프로그램은 종료하게 된다. 기본 골격이 되는 윈도우를 종료하는 가장 일반적인 방법은 해당 윈도우에 WM_CLOSE 메시지를 전달하면 된다. 이 메시지가 Main Frame 윈도우에 전달되면 처리기가 OnClose 함수를 호출하게 되고 OnClose함수는 저장하지 않은 작업을 저장하도록 요구하며 프로그램을 종료 시킨다. 아래의 코드는...