開發者工具 瀏覽器
CEF內核很強大,已經提供至關多的功能。工具
好比開發者工具,調用是如此的簡單。編碼
稍微包裝一下,聲明一個屬性spa
__property bool ShowDevTool = { read = GetDevToolVisible, write = SetDevToolVisible };orm
bool __fastcall GetDevToolVisible();開發
void __fastcall SetDevToolVisible(bool value);it
bool __fastcall TCbwChromiumExplorer::GetDevToolVisible() {ast
bool result = false;軟件
if(DevTools)im
result = DevTools->Visible;
return result;
}
void __fastcall TCbwChromiumExplorer::SetDevToolVisible(bool visible) {
if(!DevTools || !FBrowserParent)
return;
DevTools->Visible = visible;
DevTools->Width = FBrowserParent->Width / 4;
if(visible)
Chromium->ShowDevTools(TPoint(0x80000000, 0x80000000), DevTools);
else
Chromium->CloseDevTools(DevTools);
if(FSelfDevToolsFlag)
OnResize(FBrowserParent);
}
則調用的時候,直接切換該屬性值便可。
GlobalChromiumExplorer->ShowDevTool = !GlobalChromiumExplorer->ShowDevTool;
實現效果
與已有窗口互嵌
研究一下代碼,可片面得出結論:CEF能夠與窗口句柄很好地整合。
拿之前編的圖形軟件來講事,以前若是要整合,須要把圖形軟件實現爲OCX,而後在網頁中調用。如今本身已經能夠實現瀏覽器了,那就用另一種方式進行整合 à 把目標窗口嵌入到CEF的句柄中。
先實現功能看看效果,用硬編碼方式來處理:
GlobalChromiumExplorer->BrowserParent = FCurrentForm->Panel_Child;
FCurrentForm->ScrollBox->BringToFront();
FCurrentForm->ScrollBox->Align = alNone;
FCurrentForm->ScrollBox->Top = 430;
FCurrentForm->ScrollBox->Left = 270;
FCurrentForm->ScrollBox->Width = 1050;
FCurrentForm->ScrollBox->Height = 350;
演示效果
後續經過CEF訪問取得網頁中目標元素的位置與大小,而後將目標窗口嵌入到指定位置,便可實現已有窗口界面與網頁之間的完美整合。