88 lines
1.9 KiB
C++
88 lines
1.9 KiB
C++
#pragma once
|
||
#include "duilib/UIlib.h"
|
||
|
||
namespace nim_comp
|
||
{
|
||
/** @class WindowEx
|
||
* @brief 所有窗体的基类
|
||
* @copyright (c) 2015, NetEase Inc. All rights reserved
|
||
* @date 2015/9/16
|
||
*/
|
||
class WindowEx : public ui::WindowImplBase
|
||
{
|
||
public:
|
||
WindowEx();
|
||
virtual ~WindowEx();
|
||
|
||
/**
|
||
* 创建窗口
|
||
* @param[in] hwndParent 父窗口句柄
|
||
* @param[in] pstrName 窗口名称
|
||
* @param[in] dwStyle 窗口样式
|
||
* @param[in] dwExStyle 窗口扩展样式
|
||
* @param[in] isLayeredWindow 是否创建分层窗口
|
||
* @param[in] rc 窗口位置
|
||
* @return HWND 窗口句柄
|
||
*/
|
||
virtual HWND Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwStyle, DWORD dwExStyle,
|
||
bool isLayeredWindow = true, const ui::UiRect& rc = ui::UiRect(0, 0, 0, 0)) override;
|
||
|
||
/**
|
||
* 处理窗口被销毁的消息
|
||
* @param[in] uMsg 消息
|
||
* @param[in] wParam 参数
|
||
* @param[in] lParam 参数
|
||
* @param[out] b
|
||
d 消息是否被处理
|
||
* @return LRESULT 处理结果
|
||
*/
|
||
virtual LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
||
|
||
/**
|
||
* 处理ESC键单击的消息
|
||
* @param[out] bHandled 消息是否被处理
|
||
* @return void 无返回值
|
||
*/
|
||
virtual void OnEsc(BOOL& bHandled);
|
||
|
||
/**
|
||
* 获取窗口类名的接口
|
||
* @return wstring 窗口类名
|
||
*/
|
||
virtual std::wstring GetWindowClassName(void) const = 0;
|
||
|
||
/**
|
||
* 获取窗口id的接口
|
||
* @return wstring 窗口id
|
||
*/
|
||
virtual std::wstring GetWindowId(void) const = 0;
|
||
|
||
/**
|
||
* 处理窗口消息
|
||
* @param[in] uMsg 消息
|
||
* @param[in] wParam 参数
|
||
* @param[in] lParam 参数
|
||
* @return LRESULT 处理结果
|
||
*/
|
||
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||
|
||
private:
|
||
/**
|
||
* 从WindowManager中注册自己
|
||
* @return bool true 注册成功,false 注册失败
|
||
*/
|
||
bool RegisterWnd();
|
||
|
||
/**
|
||
* 从WindowManager中反注册自己
|
||
* @return void 无返回值
|
||
*/
|
||
void UnRegisterWnd();
|
||
};
|
||
|
||
/**
|
||
* 获取弹出窗口可以显示在右下角位置的坐标
|
||
* @return POINT 窗口坐标
|
||
*/
|
||
POINT GetPopupWindowPos(WindowEx* window);
|
||
} |