基於OpenCV的視頻圖像組態 (10): CEF瀏覽器與圖形軟件互嵌

開發者工具 瀏覽器

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訪問取得網頁中目標元素的位置與大小,而後將目標窗口嵌入到指定位置,便可實現已有窗口界面與網頁之間的完美整合。

相關文章
相關標籤/搜索