⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vdc.h

📁 源码PonyProg2000-2.07a.tar.gz
💻 H
字号:
//===============================================================// vdc.h: vDC class .h file - Windows//// Copyright (C) 1995-1998  Bruce E. Wampler//// This file is part of the V C++ GUI Framework, and is covered// under the terms of the GNU Library General Public License,// Version 2. This library has NO WARRANTY. See the source file// vapp.cxx for more complete information about license terms.//===============================================================#ifndef VDC_H#define VDC_H#include <v/v_defs.h>           // Basic defs#include <v/vfont.h>            // for fonts#include <v/vpen.h>             // for our pen#include <v/vbrush.h>           // for our brush#include <v/vprinter.h>    class V_EXPORT vIcon;    class V_EXPORT vColor;    typedef unsigned char ChrAttr;      // An attribute for a display char    typedef unsigned char Chr;          // A character to display    typedef struct dChar                // A display Char      {        ChrAttr attr;                   // The attribute of this char        Chr chr;                        // the character      } dChar;const ChrAttr ChNormal = 0;const ChrAttr ChReverse = 0x01;		// True Reverseconst ChrAttr ChHighlight = 0x02;	// Contrasting highlightconst ChrAttr ChBlackOnBG = 0x04;	// Black on background colorconst ChrAttr ChWhiteOnBG = 0x08;	// White on background colorconst ChrAttr ChDimColor = 0x80;        // dim color (half intensity)const ChrAttr ChRed = 0x40;             // various colorsconst ChrAttr ChGreen = 0x20;const ChrAttr ChBlue = 0x10;const ChrAttr ChYellow = 0x60;const ChrAttr ChMagenta = 0x50;const ChrAttr ChCyan = 0x30;const ChrAttr ChGray = 0xF0;const ChrAttr ChWhite = 0x70;    class V_EXPORT vMemoryDC;    class V_EXPORT vDC      {        friend class V_EXPORT vWinDC;      public:           //---------------------------------------- public        vDC(void) { _Mult = 1; _Div = 1; _hasScale = 0; _tx = 0 ; _ty = 0;                _physHeight = _physWidth = 0;}        virtual ~vDC(void) {}        // Drawing        virtual void Clear(void) = 0;	virtual void ClearRect(int left, int top, int width, int height) = 0;        virtual void CopyFromMemoryDC(vMemoryDC* vmemdc, int destX, int destY,	    int srcX = 0, int srcY = 0, int srcW = 0, int srcH = 0) // V:1.13	    {}	 #ifdef DRAWARC        virtual void DrawArc(int xx1, int yy1, int xx2, int yy2, int xxc, int yyc) = 0;#endif        virtual void DrawAttrText(int x, int y, VCONST char* text, const ChrAttr attr) = 0;        virtual void DrawText(int x, int y, VCONST char* text) = 0;        virtual void DrawEllipse(int x, int y, int width, int height) = 0;        virtual void DrawIcon(int x, int y, VCONST vIcon& icon) {};        virtual void DrawLine(int x, int y, int xend , int yend) = 0;	virtual void DrawLines(vLine* lineList, int count) = 0;	virtual void DrawLines(vPoint* lineList, int n) = 0;	virtual void DrawColorPoints(int x, int y, int nPoints, vColor* pointList) {}        virtual void DrawPoint (int x, int y) = 0;	virtual void DrawPoints (vPoint* pointList, int count) = 0;        virtual void DrawPolygon (int n, vPoint points[],                int fillStyle = vAlternate) = 0;        virtual void DrawRoundedRectangle(int x, int y,                int width, int height, int radius = 10) = 0;        virtual void DrawRectangle(int x, int y, int width, int height) = 0;        virtual void DrawRectangles(vRect* rectList, int count) = 0;        // Not all DrawingCanvases need Rubber Lines!        virtual void DrawRubberLine(int x, int y, int xend, int yend) {}        virtual void DrawRubberEllipse(int x, int y, int width, int height) {}        virtual void DrawRubberPoint(int x, int y) {}        virtual void DrawRubberRectangle(int x, int y, int width, int height) {}                // Printer        virtual int BeginPrinting() {return 0;}        virtual void EndPrinting() {}        virtual void BeginPage() {}        virtual void EndPage() {}     // virtual void SetPrinter(vPrinter& printer){}        // Misc        virtual int GetPhysHeight() VCONST { return _physHeight; }        virtual int GetPhysWidth() VCONST { return _physWidth; }        virtual void SetBackground(VCONST vColor& color) {}        virtual void SetScale(int mult, int div)         {_Mult = mult ; _Div = div ; _hasScale = (_Mult != 1 || _Div != 1); }        virtual void GetScale(int& m, int& d) VCONST {m = _Mult; d=_Div;}        void SetTranslate(int x, int y) { _tx = x; _ty = y; }        void SetTransX(int x) {_tx = x;}        void SetTransY(int y) {_ty = y;}        void GetTranslate(int& x, int& y) {x = _tx; y = _ty;}        int GetTransX() VCONST { return _tx; }        int GetTransY() VCONST { return _ty; }        virtual void SetFont( VCONST vFont& vf) {}        virtual vFont GetFont() VCONST { return _font; }       // Get text font id        virtual void SetPen(VCONST vPen& pen) {}        virtual vPen GetPen() VCONST { return _pen; }        virtual void SetBrush(VCONST vBrush& brush) {}        virtual vBrush GetBrush() VCONST { return _brush; }        virtual int TextHeight(int& asc, int& des) VCONST {return 0;}        virtual int TextWidth(VCONST char* str) VCONST {return 0;}      protected:        //--------------------------------------- protected        int _Mult;                      // scaling factors        int _Div;        int _tx;                	// translation        int _ty;        int _hasScale;                  // if have scale        int _physHeight;                // maximum height of canvas        int _physWidth;                 // max width of canvas        vBrush _brush;                  // the painting brush        VMUTABLE vFont _font;                    // the current font        vPen _pen;                      // the drawing pen        virtual int Scale(int x) { return (_hasScale) ? ((x*_Mult)/_Div) : x; }      private:          //--------------------------------------- private      };#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -