|
음...
해답이 아니라 그냥 참고만 하시라고..
제 경험을 적어 드립니다.
먼저 개발툴이 뭔지 궁금합니다.
CBuilder6 인지 2007인지..
첫번째 질문
키 입력과 관련된 증상이 CBuilder6에서는 못본것 같은데.. 2007에서는
저도 한번 본적이 있었는데... 원인은 잘모르겠습니다.
그리고 두번째 질문..
팝업창에서 속에 알맹이인 WebBrowser가 안보이고 사라지는 현상은...
저도 종 겪었구요..
Delphi7 , CBuilder6 등에서 격었네요. 2007은 테스트 해보지 않았구요..
여튼 이것도 원인을 못찻았구요
왕..왕꼼수로.. (쪽팔립니다만..)
OnNewWindow2 이벤트에서
* CppWebBrowser 가 올려진 Form을 하나 생성하고 ppDisp 를
새로 생성한 Form의 CppWebBrowser로 설정해주고..
* 그리고 Form을 Show하잖아요
제가 한 꼼수는
Form의 Show를 좀 늦게... 하면 그런 문제가 일단은 안보이더군요...
이런 왕꼼수를 얘기하려니.. 쪽팔리네요..
그래도 혹 도움이 될까해서 몇자 적어봅니다.
그럼..
나그네 님이 쓰신 글 :
: 1. 아래와 같이..
: void __fastcall TForm1::MyMessageHandler(TMsg &Msg, bool &Handled)
: {
: if ((Msg.message==WM_KEYDOWN || Msg.message==WM_KEYUP) && (Msg.wParam == VK_BACK || Msg.wParam == VK_TAB)) return;
: Handled = IsDialogMessage(CppWebBrowser1->Handle, &Msg);
: if (!Handled || CppWebBrowser1->Busy) return;
: if ((Msg.message==WM_KEYDOWN || Msg.message==WM_KEYUP) &&
: (Msg.wParam==VK_RETURN || Msg.wParam==VK_F5 || Msg.wParam == VK_DELETE || Msg.wParam == VK_CONTROL ||
: Msg.wParam == Byte('X') || Msg.wParam == Byte('C') || Msg.wParam == Byte('V') || Msg.wParam == Byte('N') || Msg.wParam == Byte('A')
: || Msg.wParam == Byte('S') || Msg.wParam == Byte('F') || Msg.wParam == Byte('R') || Msg.wParam == Byte('P'))){
: if (FOleInPlaceActiveObject) FOleInPlaceActiveObject->TranslateAccelerator(&Msg);
: else{
: IDispatch *Dispatch = CppWebBrowser1->Application;
: if(Dispatch){
: IOleInPlaceActiveObject *iOIPAO;
: Dispatch->QueryInterface(IID_IOleInPlaceActiveObject, (LPVOID *)&iOIPAO);
: if(iOIPAO){
: FOleInPlaceActiveObject = iOIPAO;
: FOleInPlaceActiveObject->TranslateAccelerator(&Msg);
: }
: }
: }
: }
: }
: 안되는 키 되게 적용했는데요. 엔터키가 되는 곳이 있고 안되는 곳이 있고 그러네요.. 엔터키 어디서나 잘되게 하는 방법 없나요? (위 소스에 뭔가를 추가해야 된다든지..)
:
: 2.네이버 에서 로그인 안한 상태에서 카페 글같은거 볼려할때 로그인창 뜨 잖아요 그 창이 창은 뜨는데.. 속에 알맹이(CppWebBrowser1)가 사라지고 안보이네요.. 방법 없나요?
|