?? fg_osdrawinterface.h
字號:
/*--------------------------------------------------------------------------
FG_OSDrawInterface.h - 操作系統繪圖接口類的頭文件
本程序是FishGUI軟件的一部分
版權所有 (C) 2003,2004 王詠武
http://www.contextfree.net/wangyw/
----------------------------------------------------------------------------
作者對 FishGUI 軟件及其所有源代碼授權如下:
允許任何個人、組織、機構、企業無償獲得、修改、使用、重新發布 FishGUI 軟
件及其源代碼,或按照有償或者無償的方式發行基于 FishGUI 源代碼的全部或部
分內容開發的軟件產品,——但行使以上權利時,須遵守以下約定:
1、重新發布 FishGUI 軟件及其源代碼時,不得隱去軟件及其源代碼中原有的版
權信息和開發者標識。
2、發行基于 FishGUI 源代碼的全部或部分內容開發的軟件產品時,必須在產品
的顯著位置標明以下字樣:
【本產品的一部分功能是基于王詠武在 FishGUI 軟件中的工作完成的】
3、在正式出版物中引用 FishGUI 的文檔、源代碼或注釋內容的,應注明軟件的
原作者為王詠武。
--------------------------------------------------------------------------*/
/*! \addtogroup OSAdaptor
* @{
*/
/*! \file
* \brief 操作系統繪圖接口類的頭文件
*/
#ifndef FG_OSDRAWINTERFACE_H_HEADER_INCLUDED_C0B113C4
#define FG_OSDRAWINTERFACE_H_HEADER_INCLUDED_C0B113C4
#include "../Utility/FG_Utility.h"
//##ModelId=3F49CF2F0067
/*! \brief 操作系統繪圖接口類
*
* 該類的派生類封裝具體的操作系統的繪圖接口,給框架層提供一個統一的接口
*/
class FG_OSDrawInterface
{
public:
//##ModelId=3F6EAC810381
/*! \brief 缺省構造函數
*/
FG_OSDrawInterface() : m_iDrawCount(0) {}
//##ModelId=3F6EAC81038B
/*! \brief 析構函數
*/
virtual ~FG_OSDrawInterface() {}
//##ModelId=3F4EBF2C01D4
/*! \brief 開始重畫
*
* 該函數執行之后,所有的繪圖操作都在一個緩沖區上進行,直到對應的\ref FG_OSDrawInterface::EndDraw調用才把緩沖區內容刷新到屏幕上
* \param rect 需要重畫的無效區域
*/
virtual void BeginDraw(const FG_Rect & rect) = 0;
//##ModelId=3F4EBF2C0293
/*! \brief 結束重畫
*
* 該函數把緩沖區內容刷新到屏幕上
*/
virtual void EndDraw() = 0;
//##ModelId=3F4EBF2C02ED
/*! \brief 填充矩形
*
* \param rect 要填充的矩形
* \param ForeColor 前景色
* \param background 背景色
*/
virtual void FillRect(const FG_Rect & rect, const COLORVAL ForeColor, const COLORVAL background) = 0;
//##ModelId=3F4EBF2D0081
/*! \brief 畫線
*
* \param x1 第一點的橫坐標
* \param y1 第一點的橫坐標
* \param x2 第二點的橫坐標
* \param y2 第二點的橫坐標
* \param color 線的顏色
*/
virtual void Line(const short x1, const short y1, const short x2, const short y2, const COLORVAL color) = 0;
//##ModelId=3F4EBF2D02B2
/*! \brief 繪制文本
*
* \param Text 要繪制的字符串,以\ref NULL結束
* \param x 文本左上角的橫坐標
* \param y 文本左上角的縱坐標
* \param color 文本的顏色
*/
virtual void DrawText(const char * Text, const short x, const short y, const COLORVAL color) = 0;
//##ModelId=3F4EBF2E00BF
/*! \brief 得到文本的寬度
*
* \param Text 要計算寬度的字符串,以\ref NULL結束
* \return 文本的寬度的像素數
*/
virtual WORD GetTextWidth(const char * Text) = 0;
//##ModelId=3F4EBF2E0191
/*! \brief 得到文本的高度
*
* \param Text 要計算高度的字符串,以\ref NULL結束
* \return 文本的高度的像素數
*/
virtual WORD GetTextHeight(const char * Text) = 0;
//##ModelId=3F4EBF2E026D
/*! \brief 繪制位圖
*
* \param pBmpName 要繪制的位圖名
* \param x1 位圖左上角的橫坐標
* \param y1 位圖左上角的縱坐標
*/
virtual void DrawBitmap(const char * pBmpName, const short x1, const short y1) = 0;
//##ModelId=3F6193B20152
/*! \brief 繪制折線
*
* \param n 該折線包含的點數
* \param vert 所有點的數組
* \param color 折線的顏色
*/
virtual void DrawPolyLine(const short n, const FG_Point * vert, const COLORVAL color) = 0;
//##ModelId=3F6EAC810395
/*! \brief 繪制點劃線矩形
*
* \param rect 要繪制的矩形
* \param color 矩形的顏色
*/
virtual void DrawDotRect(const FG_Rect & rect, const COLORVAL color) = 0;
protected:
//##ModelId=3F6EAC810350
/*! \brief 當前的需要重畫的無效區域
*
* 調用\ref FG_OSDrawInterface::BeginDraw的參數rect會組合進該無效區域中。\n
* 調用\ref FG_OSDrawInterface::EndDraw時,該無效區域被清空。
*/
FG_Rect m_Invalid;
//##ModelId=3F6EAC810363
/*! \brief \ref FG_OSDrawInterface::BeginDraw被調用的次數
*
* \ref FG_OSDrawInterface::BeginDraw被調用時,該值加1。\n
* \ref FG_OSDrawInterface::EndDraw被調用時,該值減1。
*/
int m_iDrawCount;
};
#endif /* FG_OSDRAWINTERFACE_H_HEADER_INCLUDED_C0B113C4 */
/*! @} */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -