1
순수 WinApi 응용 프로그램에 WebKit을 COM 개체로 포함시킵니다. 그리고 WM_WINDOWPOSCHANGED 가져 와서 WebKit 창의 크기를 조정하고 싶습니다.WinApi로 WebKit COM 크기 조정
LRESULT CALLBACK CBrowserView::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
typedef LRESULT (CBrowserView::*PFNPROC)(WPARAM wParam, LPARAM lParam);
PFNPROC pfnProc;
switch (uMsg)
{
case WM_WINDOWPOSCHANGED:
pfnProc = &CBrowserView::DoWindowPosChanged;
...
// CBrowserView::DoWindowPosChanged
LRESULT CBrowserView::DoWindowPosChanged(WPARAM wParam, LPARAM lParam)
{
_ASSERT(m_hWnd);
WINDOWPOS* pwp = (WINDOWPOS*)lParam;
{
if (pwp->cx != m_lClientWidth || pwp->cy != m_lClientHeight)
{
m_lClientWidth = pwp->cx;
m_lClientHeight = pwp->cy;
if (m_pIWebBrowser)
{
{
RECT rcClient;
rcClient.left = 0;
rcClient.top = 0;
rcClient.right = m_lClientWidth;
rcClient.bottom = m_lClientHeight;
HRESULT hr = m_pIWebBrowser->initWithFrame(rcClient, 0, 0);
if (FAILED(hr))
return E_FAIL;
hr = m_pIWebBrowser->mainFrame(&m_mainWebFrame);
if (FAILED(hr))
return E_FAIL;
BSTR urlBstr = SysAllocString(m_pszFile);;
WebKitToUrl(urlBstr, true);
}
}
}
}
return 0;
}
그러나 OnCreate 대화 상자에서이 클라이언트는이 클라이언트 영역을 채 웁니다. 크기 조정시 실패, m_pIWebBrowser-> initWithFrame (rcClient, 0, 0)은 E_FAIL을 반환합니다.
다른 방법으로 m_pIWebBrowser 크기를 설정할 수 있습니까?