스크롤바 없애기를 계속 실패해서 다이얼로그를 하나 더붙혀서 그영역만 보이게 하는 꼼수를 써서 프로그램을 만들었었는데 쉽게 할수있는 방법이 있었다.
코드는 아래와같다...
일단 아래 include!!!
#include <mshtml.h>
#include <ATLBASE.H>
CWebBrowser2 컨트롤을 m_Web 이라고 하고
아래와같은 코드를
void OnDocumentCompleteWeb(LPDISPATCH pDisp, VARIANT FAR* URL) 에 추가하면 된다.
HRESULT hr;
IHTMLDocument2* m_pHTMLDocument2 = 0;
LPDISPATCH lpDispatch = m_Web.GetDocument();
if (lpDispatch)
{
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&m_pHTMLDocument2);
lpDispatch->Release();
if (hr == S_OK)
{
IHTMLElement *pIElement;
hr = m_pHTMLDocument2->get_body (&pIElement);
if(!SUCCEEDED(hr))
return;
IHTMLBodyElement *pIBodyElement;
hr = pIElement->QueryInterface (IID_IHTMLBodyElement, (void**)&pIBodyElement);
if(!SUCCEEDED(hr))
return;
BSTR bstr,bstr1;
CString strScroll = "no";
CString strOverflow = "hidden";
bstr = strScroll.AllocSysString();
bstr1 = strOverflow.AllocSysString();
if(SUCCEEDED(hr) && pIBodyElement)
{
pIBodyElement->put_scroll (bstr);
CComPtr <IHTMLStyle> pStyle;
COleVariant var ((long) 0, VT_I4);
if(SUCCEEDED (pIElement-> get_style (&pStyle)) )
{
pStyle-> put_marginTop (var);
pStyle-> put_marginLeft (var);
pStyle-> put_marginRight (var);
pStyle-> put_marginBottom (var);
pStyle-> put_overflow (bstr1);
}
}
SysFreeString(bstr);
SysFreeString(bstr1);
}
m_pHTMLDocument2->Release();
m_pHTMLDocument2 = NULL;
}
'DirTy™의 하루일과 > DirTy™의 가당찮은MFC' 카테고리의 다른 글
[MFC] 윈도우 프로세스 특권 (0) | 2014.02.18 |
---|