그냥 아무 사이트나 다 되야하는데... 쩝쩝
허정주 님이 쓰신 글 :
: 확인결과 역시 DOCTYPE 정보 오류군요.
:
http://tinydew4.cn/a.html
: 확인해 보시면 포럼 메인을 다운받아 DOCTYPE 만 정정해주었는데 정상동작 합니다.
: 스크롤바 변경 코드도 덩달아 동작하는군요.
: 게시판 DOCTYPE 은 정상인데 메인만 이상하군요.
:
: 방법을 못찾으신다면 해결책은... 해당 사이트 관리자에게 버그 라고 신고를;;;
:
: 그리고 혹시나 해서... QueryInterface 는 Release 를 해주셔용~~~
:
: 장성호 님이 쓰신 글 :
: : 감사합니다.
: :
: : 정말 알고 싶은것은 두번째 질문인
: : scrollbar의 위치를 못구하는 경우의 해결책인데...
: :
: : 혹 좋은방법있으면 부탁드립니다.
: :
: :
: : 허정주 님이 쓰신 글 :
: : : 말 그대로 문서 타입 선언부입니다.
: : : HTML 4.01 문서라고 명시해 놓은 것이지요.
: : : 보통 버젼과 함께 strict, traditional, frameset 과 DTD 파일 URI 를 명시하게 되는데 저렇게도 맞는지는 모르겠네요.
: : : (아마 저 태그는 IE에서 틀려도 상관없을 듯)
: : :
: : : 관련정보링크:
http://blog.naver.com/focusjweb?Redirect=Log&logNo=70028108210
: : :
: : :
: : : 장성호 님이 쓰신 글 :
: : : : 안녕하세요
: : : : 좋은 하루 되세요
: : : :
: : : : TCppWebBrowser로 scrollbar 를 제어하고 있습니다.
: : : : scrollbar의 위치를 가져오고 설정하고...
: : : :
: : : : 팁게시판에 김태선님이 올려놓으신 팁을 이용했습니다.
: : : :
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=575
: : : :
http://www.codeproject.com/miscctrl/scrollbrowser.asp
: : : :
: : : : long __fastcall TZWebMain::GetScrollHei(TCppWebBrowser *CppWebBrowser)
: : : : {
: : : : HRESULT hr;
: : : :
: : : : IDispatch *pDisp = CppWebBrowser->Document;
: : : : if(pDisp==NULL )return 0;
: : : :
: : : : // get document interface
: : : : ::IHTMLDocument2 *pDocument = NULL;
: : : : hr = pDisp->QueryInterface( ::IID_IHTMLDocument2, (void**)&pDocument );
: : : : if(!SUCCEEDED( hr ))return 0;
: : : : if(pDocument==NULL )return 0;
: : : :
: : : : // this is the trick!
: : : : // take the body element from document...
: : : : ::IHTMLElement *pBody = NULL;
: : : : hr = pDocument->get_body( &pBody );
: : : : if(!SUCCEEDED( hr ))return 0;
: : : : if(pBody==NULL )return 0;
: : : :
: : : : // from body we can get element2 interface,
: : : : // which allows us to do scrolling
: : : : ::IHTMLElement2 *pElement = NULL;
: : : : hr = pBody->QueryInterface(::IID_IHTMLElement2,(void**)&pElement);
: : : : if(!SUCCEEDED( hr ))return 0;
: : : : if(pElement==NULL )return 0;
: : : :
: : : : long scroll_height;
: : : : pElement->get_scrollTop(&scroll_height );
: : : :
: : : : return scroll_height;
: : : : }
: : : :
: : : :
: : : : 그런데 문제는 위팁을 이용해서 get_scrollTop 으로
: : : : scroll의 위치를 가져오면 항상 0 으로 나오는 사이트가 많습니다.
: : : :
: : : : 여기 볼랜드 포럼(
http://www.borlandforum.com)도 마찬가지구요
: : : :
: : : : 여러가지로 테스트 결과 한가지 현상을 발견했으니....
: : : :
: : : : 웹페이지 맨 위에 아래 문구가 있는경우 안되더군요
: : : :
: : : : < ! DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN ' > (안보여서 띄어씀)
: : : :
: : : : 위와같은 현상은
: : : : webBroswer의 Border설정에도 똑같이 안 먹습니다.
: : : :
: : : : WebBroswer->OleObject.OlePropertyGet("Document").OlePropertyGet("Body").OlePropertyGet("style").OlePropertySet("Border","none");
: : : :
: : : :
: : : : web은 잘몰라서 그런데....
: : : : < ! DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN ' > ==> 이놈이 의미하는것이 무엇인지 알고싶구요
: : : : 위 함수로 scrollbar의 위치를 못구하는 경우의 해결책을 알고싶습니다.
: : : :
: : : : 감사합니다.
: : : :
: : : :
: : : : -추신-
: : : : 첨부파일은 borlandforum.com의 html 에서
: : : : 위 doctype에 대한 문장을 뺀경우와 그렇지 않는경우의 html파일입니다.