nim_duilib/examples/cef/cef_form.h
jiajia_deng ce1686db1a Fixed compilation errors
Signed-off-by: jiajia_deng <2894220@gmail.com>
2019-09-22 12:21:38 +08:00

48 lines
1.5 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, nim_comp::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:
nim_comp::CefControlBase* cef_control_;
nim_comp::CefControlBase* cef_control_dev_;
ui::Button* btn_dev_tool_;
ui::RichEdit* edit_url_;
};