48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
#pragma once
|
|
|
|
// 控制是否使用离屏渲染,当为 true 时将使用默认窗口阴影方案,离屏渲染模式下窗口有 WS_EX_LAYERED 属性
|
|
// 当为 false 时因使用了真窗口模式不支持带有 WS_EX_LAYERED 属性窗口,所以使用外置窗口阴影方案,需要在 xml 中将窗口 shadowattached 属性设置为 false
|
|
const bool kEnableOffsetRender = false;
|
|
|
|
class CefForm : public std::conditional<kEnableOffsetRender, ui::WindowImplBase, ui::ShadowWndBase>::type
|
|
{
|
|
public:
|
|
CefForm();
|
|
~CefForm();
|
|
|
|
/**
|
|
* 一下三个接口是必须要覆写的接口,父类会调用这三个接口来构建窗口
|
|
* GetSkinFolder 接口设置你要绘制的窗口皮肤资源路径
|
|
* GetSkinFile 接口设置你要绘制的窗口的 xml 描述文件
|
|
* GetWindowClassName 接口设置窗口唯一的类名称
|
|
*/
|
|
virtual std::wstring GetSkinFolder() override;
|
|
virtual std::wstring GetSkinFile() override;
|
|
virtual std::wstring GetWindowClassName() const override;
|
|
virtual ui::Control* CreateControl(const std::wstring& pstrClass) override;
|
|
|
|
/**
|
|
* 收到 WM_CREATE 消息时该函数会被调用,通常做一些控件初始化的操作
|
|
*/
|
|
virtual void InitWindow() override;
|
|
|
|
/**
|
|
* 收到 WM_CLOSE 消息时该函数会被调用
|
|
*/
|
|
virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
static const std::wstring kClassName;
|
|
|
|
private:
|
|
bool OnClicked(ui::EventArgs* msg);
|
|
bool OnNavigate(ui::EventArgs* msg);
|
|
void OnLoadEnd(int httpStatusCode);
|
|
|
|
private:
|
|
ui::CefControlBase* cef_control_;
|
|
ui::CefControlBase* cef_control_dev_;
|
|
ui::Button* btn_dev_tool_;
|
|
ui::RichEdit* edit_url_;
|
|
};
|
|
|