본문 바로가기

윈도우/MFC

싱글톤 (Singleton) 기법




프로그램을 만들경우 대부분 하나의 프로그램만 띄울경우가 있는데 이럴때 가장 간단하게 하는 방법을 소개합니다.

MFC기반으로 test 라는 다이얼로그 박스를 생성한다고 가정했을때

CtestApp:: InitInstance()함수 안에 아래와 같은 코드를 삽입하시면 됩니다.

BOOL CtestApp::InitInstance()
{
  
        // 싱글톤 기법 삽입 , 재실행방지
            HWND hWnd;
            hWnd=::FindWindow(NULL,_T("test")); 
            if(hWnd!=NULL)
           {  
                    ::SetForegroundWindow(hWnd);
                    ::ShowWindow(hWnd,SW_SHOW);
  
                    return FALSE;
          }

.....

}