2019-04-19 17:19:57 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
#include "duilib/UIlib.h"
|
|
|
|
|
|
|
|
|
|
namespace nim_comp
|
|
|
|
|
{
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/** @class WindowEx
|
|
|
|
|
* @brief <EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @copyright (c) 2015, NetEase Inc. All rights reserved
|
|
|
|
|
* @date 2015/9/16
|
2019-04-19 17:19:57 +08:00
|
|
|
|
*/
|
2021-09-15 17:37:26 +08:00
|
|
|
|
class WindowEx : public ui::WindowImplBase
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
WindowEx();
|
|
|
|
|
virtual ~WindowEx();
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] hwndParent <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] pstrName <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] dwStyle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
|
|
|
|
* @param[in] dwExStyle <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD>ʽ
|
|
|
|
|
* @param[in] isLayeredWindow <EFBFBD>Ƿ<EFBFBD><EFBFBD>ֲ㴰<EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] rc <EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>
|
|
|
|
|
* @return HWND <EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
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;
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param[in] uMsg <EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param[in] wParam <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] lParam <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[out] b
|
|
|
|
|
d <EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return LRESULT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
virtual LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ESC<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param[out] bHandled <EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
*/
|
|
|
|
|
virtual void OnEsc(BOOL& bHandled);
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľӿ<EFBFBD>
|
|
|
|
|
* @return wstring <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
virtual std::wstring GetWindowClassName(void) const = 0;
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<EFBFBD>Ľӿ<EFBFBD>
|
|
|
|
|
* @return wstring <EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
|
|
|
|
|
*/
|
|
|
|
|
virtual std::wstring GetWindowId(void) const = 0;
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param[in] uMsg <EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
* @param[in] wParam <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @param[in] lParam <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return LRESULT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>WindowManager<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>
|
|
|
|
|
* @return bool true ע<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>false ע<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
bool RegisterWnd();
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>WindowManager<EFBFBD>з<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>
|
|
|
|
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
*/
|
|
|
|
|
void UnRegisterWnd();
|
|
|
|
|
};
|
2019-04-19 17:19:57 +08:00
|
|
|
|
|
2021-09-15 17:37:26 +08:00
|
|
|
|
/**
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD>λ<EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* @return POINT <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
POINT GetPopupWindowPos(WindowEx* window);
|
2019-04-19 17:19:57 +08:00
|
|
|
|
}
|