|
먼저 답변해 주셔서 감사합니다.
독립 application에서는 잘되는거 같은데여....
activexForm 을 이용해서 웹브라우저 내에 삽입을 해서
브라우저를 통하여 호출하니 스크롤이 안없어 지는거 같군요....
아참 에러 메세지는 없어 졌습니다.
방법이 없을까요?
님이 쓰신 글 :
: 이진수 님이 쓰신 글 :
: : 안녕하세요?
: : 저는 빌드6.0을 쓰고 있습니다.
: : 이번에 activex 로 작업을 하는데 activexform에 CppWebBrowser1을 장착하고
: : 여기에 주소를 매칭 시키고 스크롤바를 없애려고 합니다.
: : 근데 실제 웹브라우저에서 띄우니 에러가뜨는군요...
: : Access violation at address 06D2E21F in module 'XUP1PR~1.OCX'. Read of address 00000800
: :
: : 이런 에러가 뜹니다...
: : 어떻게 해야 하나요?
: : 여러분의 조언을 부탁 합니다.
: :
: : 아래는 소스입니다.
: : void __fastcall Txup1::CppWebBrowser1DocumentComplete(TObject *Sender,
: : LPDISPATCH pDisp, Variant *URL)
: : {
: : Variant HTMLDoc = ((TCppWebBrowser *) Sender)->Document;
: : if ( !VarIsEmpty( HTMLDoc ) )
: : {
: : Variant Body = HTMLDoc.OlePropertyGet("body");
: :
: : if ( !VarIsEmpty( Body ) )
: : {
: : Body.OlePropertyGet("style").OlePropertySet("borderStyle", "none");
: : Body.OlePropertySet("scroll", "no");
: : VarClear(Body);
: : }
: : VarClear(HTMLDoc);
: : }
: : }
:
: DocumentComplete 이벤트는 매 프레임마다 발생합니다.
: 스크롤바에 국한해서 생각한다면,
: 프레임이 나누어지지 않은 경우 ((TCppWebBrowser *) Sender)->Document로 해도 별 이상이 없습니다.
: 하지만, 프레임이 나누어진 경우에는 pDisp를 통해 액세스해야 하며 마지막으로 발생하는 DocumentComplete 이벤트는 무시해야 합니다.
: 마지막으로 발생하는 DocumentComplete 이벤트는 프레임을 나누는 소스가 있는 HTML을 위한 것으로서 이는 창을 가지지 않게됩니다. 그리고 이 이벤트 시에는 pDisp==CppWebBrowser1->ControlInterface입니다.
: 프레임이 나누어지지 않은 경우에도 pDisp==CppWebBrowser1->ControlInterface입니다.
:
: void __fastcall TForm1::CppWebBrowser1DocumentComplete(TObject *Sender,
: LPDISPATCH pDisp, Variant *URL)
: {
: Variant webbrowserframe=Unassigned,HTMLDoc=Unassigned,Body=Unassigned;
: try{
: //Caption=(String)*URL;
: //Variant HTMLDoc = ((TCppWebBrowser *) Sender)->Document;
: webbrowserframe = pDisp;
: HTMLDoc=webbrowserframe.OlePropertyGet("Document");
: if ( !VarIsEmpty( HTMLDoc ) )
: {
: Body = HTMLDoc.OlePropertyGet("Body");
: if ( !VarIsEmpty( Body ) )
: {
: Body.OlePropertyGet("style").OlePropertySet("borderStyle", "none");
: Body.OlePropertySet("Scroll", "no");
: }
: }
: }catch(...){
: }
: VarClear(Body);
: VarClear(HTMLDoc);
: VarClear(webbrowserframe);
: }
|