wie kann ich bei IHTMLDocument2 frames die left und top koordinaten rauskriegen?
-
Hi Leutz,
ich code nun seit wochen an funktionen, die mir von ner CppWebBrowser komponente das Link-href unter der Maus geben (einschließlich frames und image-links unterstützung) so, jetzt hab ich fast alles an code zusammen, aber eine sache brauch ich noch:
wenn ich die frames durchlaufe, krieg ich nen zeiger auf ein IHTMLDocument2, welches den aktuellen frame enthält.for(LONG ilFrameIndex = 0; ilFrameIndex < ilFramesCount; ilFrameIndex++) { vFrame.lVal = ilFrameIndex; if(!SUCCEEDED(pFrames->item(&vFrame, &ret))) continue; ret.pdispVal->QueryInterface(IID_IHTMLWindow2,(LPVOID*)&pWindow); // Zeiger auf IHTMLWindow2 des Frames besorgen: if(pWindow == NULL) continue; pWindow->get_document(&pDoc2); // Zeiger auf IHTMLDocument2 des Frames besorgen: if(pDoc2 == NULL) {pWindow->Release(); continue;} pDoc2->elementFromPoint(p2.x , p2.y, &pElement); ...Das Problem, das ich nun habe ist folgendes:
wenn ich nur einen frame hab, kann ich mit CppWebBrowser->ScreenToClient(p) die Mauskoordinaten p in koordinaten relativ zum browser umrechnen, aber wenn ich mehrere frames hab, brauch ich die koordinaten relativ zum frame...
es würde mir ja schon reichen, wenn ich die x- und y-koordinate des frames hätte, damit könnte ich das selbst ausrechnen, aber weder ne ScreenToClient noch ne get_x* get_c* methode hat IHTMLDocument2...was hat sich microsoft bei dieser erbärmlichen schnittstelle bloß gedacht?
Danke für jede hilfe...
CUAlgoMan