MFC 다른 프로그램 창 활성화 시키기
다른프로그램의 창을 활성화 시켜야 할 경우가 있어야 할지도 모른다.
중요한건 윈도우 핸들값을 찾아야 한다.
1) 윈도우 핸들 값을 찾는다.
1-1.클래스명을 모를경우 NULL을 집어넣고 Title에 흔히 보이는 프로그램 명을 집어넣어주면 된다.
HWND hwnd = FindWindow(클래스명, Title);
1-2. CreateProcess로 자신이 실행한 경우 PROCESS_INFORMATION 으로 윈도우 핸들값을 찾아야 한다.
인터넷으로 콜백함수를 사용하여 프로세스를 뒤진다음 가져오는 함수가 있었다.
HWND m_hwnd;
BOOL CALLBACK EnumChildProc( HWND hwnd, LPARAM lParam )
{
m_hwnd = NULL;
TCHAR text[255];
DWORD dwPID = 0;
GetWindowText(hwnd,text,sizeof(text));
GetWindowThreadProcessId(hwnd,&dwPID);
if(dwPID == (DWORD)lParam)
{
m_hwnd = hwnd;
return FALSE;
}
return TRUE;
}
2-1. 핸들 값을 찾았으면 그핸들값으로 창을 활성화 시킨다.
::BringWindowToTop(hwnd);
::SetActiveWindow(hwnd);
::SetForegroundWindow(hwnd);
::ShowWindow(hwnd, SW_SHOWNORMAL);
::UpdateWindow(hwnd);
'Programming Lv1 > MFC' 카테고리의 다른 글
MFC 간단한 쓰레드 작성 (0) | 2012.01.19 |
---|---|
MFC 트리컨트롤 하위메뉴 체크 여부에 따른 색변화 (0) | 2012.01.19 |
MFC 버튼크기에 맞게 이미지 변경하여 보여주기 (0) | 2011.10.17 |
CString을 char*로 변경 (0) | 2011.10.17 |
배열 동적 할당 및 배열 개수 (0) | 2011.08.26 |