114 lines
2.2 KiB
C
114 lines
2.2 KiB
C
![]() |
#ifndef UI_UTILS_DPIMANAGER_H_
|
|||
|
#define UI_UTILS_DPIMANAGER_H_
|
|||
|
|
|||
|
#pragma once
|
|||
|
|
|||
|
namespace ui
|
|||
|
{
|
|||
|
/** @class DpiManager
|
|||
|
* @brief DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @copyright (c) 2016, NetEase Inc. All rights reserved
|
|||
|
* @author Redrain
|
|||
|
* @date 2016/10/10
|
|||
|
*/
|
|||
|
class UILIB_API DpiManager
|
|||
|
{
|
|||
|
public:
|
|||
|
static DpiManager* GetInstance();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡϵͳDPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @return UINT DPI
|
|||
|
*/
|
|||
|
static UINT GetSystemDPI();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡij<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] HMONITOR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return UINT DPI
|
|||
|
*/
|
|||
|
static UINT GetMonitorDPI(HMONITOR hMonitor);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @return UINT DPI
|
|||
|
*/
|
|||
|
static UINT GetMainMonitorDPI();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡDPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD>֪Ҳ<EFBFBD><EFBFBD>Ч
|
|||
|
* @return UINT DPI
|
|||
|
*/
|
|||
|
static UINT GetDPIFromRegistry();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>
|
|||
|
* @return bool true <EFBFBD>ǣ<EFBFBD>false <EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
bool IsAdaptDPI();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return bool true <EFBFBD><EFBFBD><EFBFBD>óɹ<EFBFBD><EFBFBD><EFBFBD>false <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
bool SetAdaptDPI();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
|||
|
* @return UINT <EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD>
|
|||
|
*/
|
|||
|
UINT GetScale();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPIֵ<EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>űȣ<EFBFBD>ֻ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] uDPI DPIֵ
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
void SetScale(UINT uDPI);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <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><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] iValue <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return int <EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
int ScaleInt(int &iValue);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SIZE<EFBFBD><EFBFBD>ֻ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] pSize SIZEָ<EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
void ScaleSize(SIZE &size);
|
|||
|
|
|||
|
void ScaleSize(CSize &size);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>POINT<EFBFBD><EFBFBD>ֻ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] pSize SIZEָ<EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
void ScalePoint(POINT &point);
|
|||
|
|
|||
|
void ScalePoint(CPoint &point);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RECT<EFBFBD><EFBFBD>ֻ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DPI<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|||
|
* @param[in] pSize SIZEָ<EFBFBD><EFBFBD>
|
|||
|
* @return void <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
*/
|
|||
|
void ScaleRect(RECT &rect);
|
|||
|
|
|||
|
void ScaleRect(UiRect &rect);
|
|||
|
|
|||
|
private:
|
|||
|
DpiManager();
|
|||
|
~DpiManager() {};
|
|||
|
DpiManager(const DpiManager&) = delete;
|
|||
|
DpiManager& operator = (const DpiManager&) = delete;
|
|||
|
|
|||
|
private:
|
|||
|
int m_nScaleFactor;
|
|||
|
bool m_bAdaptDPI;
|
|||
|
};
|
|||
|
}
|
|||
|
#endif //UI_UTILS_DPIMANAGER_H_
|