|
까마귀 님이 쓰신 글 :
: TCppWebBrowser를 이용하여 Help 및 About 창을 만들려고합니다.
: 물론 Local로 HTML 화일을 만들어 읽어드리게 하면됩니다만,
: //-----------------------------------------------------------------------------------------
: TCppWebBrowser *Body;
: TString HelpPage=ExtractFilePath(APPeName)+"HelpPage.htm";
: Body->Navigate(WideString(HelpPage).c_bstr(), EmptyParam,
: EmptyParam, EmptyParam, EmptyParam);
: //-----------------------------------------------------------------------------------------
: 그러면, 사용자가 HTML 화일을 이미로 변경할 수 있으므로... 별로 만에 들지 않아서요...
: HTML 화일의 내용을 Stream으로 해서 TCppWebBrowser로 하여 출력하게 하는 방법은 없나요...?
: 도와주세요.....^_^.....
안녕하세요 만해입니다.
제가 방금 님의질문 보고 샘플을 만들었느데요
원래 OLE로 해결할수 있는 방법이 있는데
제가 실력이 딸려서 그건 못했고요
COM을 이용해서 해결하는 방법을 알려 드립니다.
소스 올릴께요
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include <mshtml.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IDispatch* Document;
Document = CppWebBrowser1->Document;
IHTMLDocument2 *pHTMLDocument;
IHTMLElement *pHTMLElement;
HRESULT hr;
WideString InnerHTML = Memo1->Text;
hr = Document->QueryInterface(IID_IHTMLDocument2,(void**)&pHTMLDocument);
if ( hr == S_OK )
{
hr = pHTMLDocument->get_body(&pHTMLElement);
if ( hr == S_OK )
{
pHTMLElement->put_innerHTML(InnerHTML);
pHTMLElement->Release();
}
pHTMLDocument->Release();
}
Document->Release();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
WideString Blank = "About:blank";
CppWebBrowser1->Navigate(Blank,NULL,NULL,NULL);
}
//---------------------------------------------------------------------------
위의 소스는요 메모자에 있는 html 문서를 CppWebBrowser에서 보여 주는 소스고요
다만 주의 할점은 Button1을 클릭하기 전에 반드시
Button2를 클릭을 해야 합니다.
CppWebBrowser에서 navigate을 한번 실행하고 난후에 실행이 되는 소스입니다.
이거 염두해 두시고요
참고하세요
참고로 델마당에 가면 제가 한것과 비슷한 소스가 있스니다.
참고 하세요
웹브라우저에서 채팅하기던가 그런 제목으로 있습니다.
그럼 이만`
^^//
|