문서를 Active처리하면서 SetFocus하지 않는 방법

한글 오토메이션입니다. Visual Studio(MFC)입니다.

CXHwpDocument클래스의 SetActive_XHwpDocument함수를 사용해서 한 HwpObject클래스(한 프로세스)에 있는 여러 개의 문서 중 한개의 문서를 Active할 수 있습니다.
하지만 SetActive_XHwpDocument함수 내부에 SetFocus(포커스 점유)함수가 포함되어 있어서 프로그램을 실행한 상태에서 다른 작업을 할 수가 없습니다. 심지어 불편해서 프로세스를 죽이기 위해서 작업 관리자를 열어서 프로세스 종료할 수도 없게 됩니다.
Active는 하되 SetFocus하지 않는 함수(혹은 기능)는 없나요?

1개의 좋아요

답변을 부탁드립니다.
항상 감사드립니다.

안녕하세요.

오토메이션에는 Active를 시키면서 포커스만 이동하는 API는 없습니다.
윈도우 핸들을 반환하는 XHwpWindow::get_WindowHandle 프로퍼티가 있는데
Win32 API로 반환된 핸들의 윈도우에 대해 포커스 핸들링을 시도해볼 수 있을 것 같습니다. (해보지는 않음)

감사합니다.

1개의 좋아요

화면을 아예 안보이게 해버리면 어떨까요?.. 생각만 해봤습니다.

프로그램이 아예 안 보였다가 다시 보인다는 의미인거죠?
적절한 방법이 아닌 것 같습니다.