nim_duilib/ui_components/windows_manager/window_ex.h

88 lines
1.9 KiB
C
Raw Normal View History

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
}