# 폼내에서 편집

**URL:** <https://forum.developer.hancom.com/t/topic/1497>\
**Category:** 한글 오토메이션\
**Created:** [5월 4, 2024, 4:57오후 UTC](https://forum.developer.hancom.com/t/topic/1497 "2024-05-04T16:57:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Na\_YuTa](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.developer.hancom.com/na_yuta/32/944_2.png) [@Na\_YuTa](https://forum.developer.hancom.com/u/Na_YuTa)\
**Post date:** [5월 4, 2024, 4:57오후 UTC](https://forum.developer.hancom.com/t/topic/1497/1 "2024-05-04T16:57:55Z")

</div>

VBA 폼내에서 한글 파일 띄우고  
필드삽입하고 편집하고 그랬는데요

이제 HWPCTRL.OCX 도 지원이 종료되고

파이썬으로 갈아타서 새로 만들려니 어렵네요

Pyqt5나 다른 gui툴로  
폼 만들고 따로 한글을 실행해서 편집하는거 말고

폼내부에서 실행해서 편집하고 싶은데 방법이 있을까요?..

---

<div class="post-metadata">

**Author:** ![jhbang](https://avatars.discourse-cdn.com/v4/letter/j/ee59a6/32.png) [@jhbang](https://forum.developer.hancom.com/u/jhbang)\
**Post date:** [5월 7, 2024, 9:30오전 UTC](https://forum.developer.hancom.com/t/topic/1497/2 "2024-05-07T09:30:40Z")

</div>

안녕하세요.

한글 오토메이션은 HwpCtrl.ocx와 실행 방식의 차이가 있어서 동일한 형식으로 구현하기는 어렵습니다.  
아시겠지만 HwpCtrl.ocx은 dll의 형식이라서 다른 응용프로그램에 임베딩되어 실행이 가능했습니다.

 ![HwpCtrl](https://us1.discourse-cdn.com/flex016/uploads/hancom_dev_forum/original/1X/fdd64a67babf77276912855c1e62cdc629b545b2.png)

반면에 한글오토메이션은 Hwp.exe를 Out of Process COM 방식으로 운영하기 때문에  
다른 응용프로그램에 임베딩하는 형식으로 개발은 어렵습니다. 😭 😅  
(\* 사용 용도가 다름)

 ![HwpAutomation](https://us1.discourse-cdn.com/flex016/uploads/hancom_dev_forum/original/1X/2e4877f14a2d27e4a40bdc84d5332cbd282ea94e.jpeg)

그래도 Win32 API를 이용하면 HwpCtrl과 같은 형식을 흉내는 내볼 수 있습니다.  
(python의 UI 개발 방식에 대한 이해는 깊지 못해 MFC C++ 방식으로 설명 드립니다.)

한글 오토메이션 API에는 아래 4개의 API가 있습니다.  
주어진 인자의 윈도우 핸들을 Parent 설정, 위치/크기 설정

- 4개의 API는 한글 2018 최신 버전 이상에서만 사용 가능

- CXHwpWindow::put\_Parent, put\_Left, put\_Top, put\_Width, put\_Height

그래서 아래와 같이 코드를 작성하면

```auto
CHwpObject m_app;
...

// 임베딩하고자 하는 윈도우의 크기를 구함
RECT rcClient = {0, };
GetClientRect(&rcClient);
...

CXHwpWindows wins = m_app.get_XHwpWindows();
CXHwpWindow win = m_app.get_Active_XHwpWindow();

// m_hWnd = 임베딩하려는 윈도우의 핸들
win.put_Parent((long)m_hWnd);
win.put_Height(rcClient.bottom - rcClient.top);
win.put_Width(rcClient.right - rcClient.left);
win.put_Visible(TRUE);

```

 ![HwpAutomation2](https://us1.discourse-cdn.com/flex016/uploads/hancom_dev_forum/original/1X/d8d51e4d18ad574bb52f0704b1e7cdfa05c38fdb.png)

최초 실행할 때는 임베딩이 되더라도 한글 기능을 제한할 수 없기 때문에  
새 문서를 열거나 하면 임베딩에서 벗어날 수 있어서 100% 원하는 형식으로 구현하기는 어려울 것 같네요. 😥

감사합니다.
