Window2000 부터 인가? 활성화가 잘 되지 않았습니다. 저도 이 게시물이 있을 때 본 것 같은데...해결을 못하고 프로그램을 만들었습니다. Win2000부터는 사용자의 Window에 대해 어떤 이벤트가 있어야 활성화 된다는 문서를 몇년 전에 보았는데... 그 후로 생각하지 않다가 오늘 보니 아이디어가 떠올랐습니다.... 강제로 이벤트를 주면 되겠지요. 사람이 이벤트를 주는 것은 입력장치인 키보드 마우스 이겠지요.... ㅋㅋㅋㅋㅋ
물론 활성화 시키고자 하는 윈도우는 맨 앞으로 보내고.... 그리고 마우스 커서를 이동시키고 마우스를 한번 클릭하면
활성화 됩니다. 그리고 나서 마우스 커서를 다시 월래의 위치로 살짝 이동 그러면 깜쪽같이 끝납니다..
저도 오늘 몇년 전의 한을 풀었습니다. ㅋㅋㅋㅋㅋ
::SetWindowPos( hwnd, HWND_TOPMOST, xPos, yPos, dlgRect.Width(), dlgRect.Height(), SWP_SHOWWINDOW );
POINT pos;
if( ::GetCursorPos( &pos )==0 ) // address of structure for cursor position
{
pos.x=-1;
pos.y=-1;
}
SetCursorPos( xPos+2, yPos+3 );
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0,0, 0, 0);
if( pos.x!=-1 || pos.y!=-1 ) ::SetCursorPos( pos.x, pos.y );
HWND hhh;
hhh = ::GetDlgItem( this->HWindow, IDC_SEXTRACT );
::PostMessage( hhh, WM_SETFOCUS, 0, 0 );
|