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

📄 13. 使用打印机.txt

📁 本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法
💻 TXT
📖 第 1 页 / 共 5 页
字号:
        
                  return 0 ;
        
        
        
           case   WM_DESTROY :
        
                          PostQuitMessage (0) ;
        
                          return 0 ;
        
           }
        
           return DefWindowProc (hwnd, message, wParam, lParam) ;
        
}
        
   
        
void DoBasicInfo (HDC hdc, HDC hdcInfo, int cxChar, int cyChar)
        
{
        
  static struct
        
           {
        
                  int     nIndex ;
        
                  TCHAR * szDesc ;
        
  }
        
           info[] =
        
           {
        
                 HORZSIZE,                     TEXT ("HORZSIZE                   Width in millimeters:"),
        
                  VERTSIZE,                     TEXT ("VERTSIZE                   Height in millimeters:"),
        
                  HORZRES,                      TEXT ("HORZRES                   Width in pixels:"),
        
                  VERTRES,                     TEXT ("VERTRES                    Height in raster lines:"),
        
                  BITSPIXEL,                    TEXT ("BITSPIXEL                  Color bits per pixel:"),
        
                  PLANES,                       TEXT ("PLANES                              Number of color planes:"),
        
                  NUMBRUSHES,                   TEXT ("NUMBRUSHES                 Number of device brushes:"),
        
                  NUMPENS,                      TEXT ("NUMPENS                           Number of device pens:"),
        
                  NUMMARKERS,                   TEXT ("NUMMARKERS                 Number of device markers:"),
        
                  NUMFONTS,                     TEXT   ("NUMFONTS                        Number of device fonts:"),
        
                  NUMCOLORS,                    TEXT   ("NUMCOLORS                       Number of device colors:"),
        
                  PDEVICESIZE, TEXT("PDEVICESIZESize of device structure:"),
        
ASPECTX,       TEXT("ASPECTX Relative width of pixel:"),
        
ASPECTY,       TEXT("ASPECTY Relative height of pixel:"),
        
ASPECTXY,      TEXT("ASPECTXY Relative diagonal of pixel:"),
        
LOGPIXELSX,    TEXT("LOGPIXELSX Horizontal dots per inch:"),
        
LOGPIXELSY,   TEXT("LOGPIXELSY Vertical dots per inch:"),
        
SIZEPALETTE,   TEXT("SIZEPALETTE Number of palette entries:"),
        
NUMRESERVED,   TEXT("NUMRESERVED Reserved palette entries:"),
        
COLORRES,      TEXT("COLORRES Actual color resolution:"),
        
PHYSICALWIDTH, TEXT("PHYSICALWIDTH Printer page pixel width:"),
        
PHYSICALHEIGHT,TEXT("PHYSICALHEIGHT Printer page pixel height:"),
        
PHYSICALOFFSETX,TEXT("PHYSICALOFFSETX Printer page x offset:"),
        
PHYSICALOFFSETY,TEXT("PHYSICALOFFSETY Printer page y offset:")
        
  } ;
        
   int   i ;
        
  TCHAR szBuffer[80] ;
        
        
        
           for (i = 0 ; i < sizeof (info) / sizeof (info[0]) ; i++)
        
             TextOut (hdc, cxChar, (i + 1) * cyChar, szBuffer,
        
              wsprintf (szBuffer, TEXT ("%-45s%8d"), info[i].szDesc,
        
                   GetDeviceCaps (hdcInfo, info[i].nIndex))) ;
        
}
        
  
        
void DoOtherInfo (HDC hdc, HDC hdcInfo, int cxChar, int cyChar)
        
{
        
           static BITS clip[] =
        
           {
        
        CP_RECTANGLE, TEXT ("CP_RECTANGLE  Can Clip To Rectangle:")
        
           } ;
        
        
        
           static BITS raster[] =
        
    {
        
       RC_BITBLT,    TEXT ("RC_BITBLT  Capable of simple BitBlt:"),
        
           RC_BANDING,   TEXT ("RC_BANDING Requires banding support:"),
        
       RC_SCALING,   TEXT ("RC_SCALING Requires scaling support:"),
        
       RC_BITMAP64,  TEXT ("RC_BITMAP64  Supports bitmaps >64K:"),
        
       RC_GDI20_OUTPUT, TEXT ("RC_GDI20_OUTPUT Has 2.0 output calls:"),
        
       RC_DI_BITMAP, TEXT ("RC_DI_BITMAP  Supports DIB to memory:"),
        
           RC_PALETTE,   TEXT ("RC_PALETTE      Supports a palette:"),
        
          RC_DIBTODEV,  TEXT ("RC_DIBTODEV Supports bitmap conversion:"),
        
          RC_BIGFONT,   TEXT ("RC_BIGFONT  Supports fonts >64K:"),
        
           RC_STRETCHBLT,TEXT ("RC_STRETCHBLT Supports StretchBlt:"),
        
           RC_FLOODFILL, TEXT ("RC_FLOODFILL  Supports FloodFill:"),
        
          RC_STRETCHDIB,TEXT ("RC_STRETCHDIB Supports StretchDIBits:")
        
           } ;
        
        
        
           static TCHAR * szTech[]=      {      TEXT ("DT_PLOTTER (Vector plotter)"),
        
                       TEXT ("DT_RASDISPLAY (Raster display)"),
        
                        TEXT ("DT_RASPRINTER (Raster printer)"),
        
                        TEXT ("DT_RASCAMERA (Raster camera)"),
        
                        TEXT ("DT_CHARSTREAM (Character stream)"),
        
                       TEXT ("DT_METAFILE (Metafile)"),
        
                        TEXT ("DT_DISPFILE (Display file)") } ;
        
  int                                  i ;
        
   TCHAR                                szBuffer[80] ;
        
        
        
           TextOut (hdc, cxChar, cyChar, szBuffer,
        
         wsprintf (szBuffer, TEXT ("%-24s%04XH"), TEXT ("DRIVERVERSION:"),
        
              GetDeviceCaps (hdcInfo, DRIVERVERSION))) ;
        
  TextOut (hdc, cxChar, 2 * cyChar, szBuffer,
        
                          wsprintf (szBuffer, TEXT ("%-24s%-40s"), TEXT ("TECHNOLOGY:"),
        
                                         szTech[GetDeviceCaps (hdcInfo, TECHNOLOGY)])) ;
        
   TextOut (hdc, cxChar, 4 * cyChar, szBuffer,
        
                          wsprintf (szBuffer, TEXT ("CLIPCAPS (Clipping capabilities)"))) ;
        
           for (i = 0 ; i < sizeof (clip) / sizeof (clip[0]) ; i++)
        
                          TextOut (hdc, 9 * cxChar, (i + 6) * cyChar, szBuffer,
        
                                                wsprintf (szBuffer, TEXT ("%-45s %3s"), clip[i].szDesc,
        
                                                        GetDeviceCaps (hdcInfo, CLIPCAPS) & clip[i].iMask ?
        
                                                 TEXT ("Yes") : TEXT ("No"))) ;
        
           TextOut (hdc, cxChar, 8 * cyChar, szBuffer,
        
                  wsprintf (szBuffer, TEXT ("RASTERCAPS (Raster capabilities)"))) ;
        
   for (i = 0 ; i < sizeof (raster) / sizeof (raster[0]) ; i++)
        
           TextOut (hdc, 9 * cxChar, (i + 10) * cyChar, szBuffer,
        
                                                wsprintf (szBuffer, TEXT ("%-45s %3s"), raster[i].szDesc,
        
                                                         GetDeviceCaps (hdcInfo, RASTERCAPS) & raster[i].iMask ?
        
                                  TEXT ("Yes") : TEXT ("No"))) ;
        
}
        

void DoBitCodedCaps (      HDC hdc, HDC hdcInfo, int cxChar, int cyChar,int iType)
        
{
        
          static BITS curves[] =
        
           {
        
                  CC_CIRCLES,    TEXT ("CC_CIRCLES    Can do circles:"),
        
                  CC_PIE,        TEXT ("CC_PIE        Can do pie wedges:"),
        
                  CC_CHORD,      TEXT ("CC_CHORD      Can do chord arcs:"),
        
                  CC_ELLIPSES,  TEXT ("CC_ELLIPSES   Can do ellipses:"),
        
                  CC_WIDE,       TEXT ("CC_WIDE       Can do wide borders:"),
        
                  CC_STYLED,     TEXT ("CC_STYLED     Can do styled borders:"),
        
                 CC_WIDESTYLED, TEXT   ("CC_WIDESTYLED Can do wide and styled borders:"),
        
                  CC_INTERIORS,  TEXT ("CC_INTERIORS  Can do interiors:")
        
           } ;
        
   
        
           static BITS lines[] =
        
           {
        
                  LC_POLYLINE,   TEXT   ("LC_POLYLINE Can do polyline:"),
        
                  LC_MARKER,     TEXT   ("LC_MARKER Can do markers:"),
        
                  LC_POLYMARKER, TEXT   ("LC_POLYMARKER Can do polymarkers"),
        
                  LC_WIDE,       TEXT   ("LC_WIDE Can do wide lines:"),
        
                  LC_STYLED,     TEXT   ("LC_STYLED Can do styled lines:"),
        
                  LC_WIDESTYLED, TEXT   ("LC_WIDESTYLED       Can do wide and styled lines:"),
        
                  LC_INTERIORS,  TEXT ("LC_INTERIORS  Can do interiors:")
        
           } ;
        
   
        
           static BITS poly[] =
        
           {
        
                  PC_POLYGON,   
        
                                 TEXT ("PC_POLYGON     Can do alternate fill polygon:"),
        
                  PC_RECTANGLE,         TEXT   ("PC_RECTANGLE Can do rectangle:"),
        
           PC_WINDPOLYGON,
        
                                  TEXT ("PC_WINDPOLYGON Can do winding number fill polygon:"),
        
                  PC_SCANLINE,          TEXT ("PC_SCANLINE    Can do scanlines:"),
        
                  PC_WIDE,              TEXT ("PC_WIDE        Can do wide borders:"),
        
                  PC_STYLED,            TEXT ("PC_STYLED      Can do styled borders:"),
        
                  PC_WIDESTYLED,
        
                                 TEXT ("PC_WIDESTYLED  Can do wide and styled borders:"),
        
                 PC_INTERIORS,         TEXT ("PC_INTERIORS   Can do interiors:")
        
   } ;
        
   
        
           static BITS text[] =
        
           {
        
                  TC_OP_CHARACTER, TEXT ("TC_OP_CHARACTER      Can do character output precision:"),
        
                  TC_OP_STROKE,    TEXT ("TC_OP_STROKE  Can do stroke output precision:"),
        
                  TC_CP_STROKE,    TEXT ("TC_CP_STROKE  Can do stroke clip precision:"),
        
                  TC_CR_90,        TEXT ("TC_CP_90       Can do 90 degree character rotation:"),
        
                 TC_CR_ANY,       TEXT ("TC_CR_ANY      Can do any character rotation:"),
        
                  TC_SF_X_YINDEP,  TEXT ("TC_SF_X_YINDEP  Can do scaling independent of X and Y:"),
        
                  TC_SA_DOUBLE,    EXT ("TC_SA_DOUBLE    Can do doubled character for scaling:"),
        
                  TC_SA_INTEGER,   TEXT ("TC_SA_INTEGER   Can do integer multiples for scaling:"),
        
                  TC_SA_CONTIN,    TEXT ("TC_SA_CONTIN  Can do any multiples for exact scaling:"),
        
                  TC_EA_DOUBLE,    TEXT ("TC_EA_DOUBLE   Can do double weight characters:"),
        
                  TC_IA_ABLE,      TEXT ("TC_IA_ABLE     Can do italicizing:"),
        
                  TC_UA_ABLE,      TEXT ("TC_UA_ABLE     Can do underlining:"),
        
                  TC_SO_ABLE,      TEXT ("TC_SO_ABLE     Can do strikeouts:"),
        

⌨️ 快捷键说明

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