Programming Windows程式开发设计指南->第四章 例子程序

本文介绍了一个展示如何使用GetSystemMetrics函数获取各种Windows系统度量信息的示例程序。通过创建一个带有滚动条的窗口,程序展示了屏幕尺寸、窗口边框、图标尺寸等系统度量值。

/*_############################################################################
  _##
  _##  Programming Windows程式开发设计指南->第四章 例子程序
  _##  Author: xwlee                        
  _##  Time: 2007.06.17 
  _##  Chang'an University
  _##  Development condition: win2003 Server+VC6.0
  _##
  _##  程序4-1  HELLOWIN
  _##  SYSMETS.C 文件
  _##  编写一个程序,显示一些可以从GetSystemMetrics调用中取得的信息,
  _##  显示格式为每种视觉元件一行。如果我们建立一个头文件,在头文件
  _##  中定义一个结构阵列,此结构包含GetSystemMetrics索引对应的Windows
  _##  头文件标帜符和调用所传回的每个值对应的字符串,这样处理起来要容易一些。
  _##  头文件名为SYSMETS.H。
  _##
  _##
  _##
  _##    SYSMETS.C -- System Metrics Display Program No. 1
  _##     (c) Charles Petzold, 1998
  _##  
  _##########################################################################*/

#include <windows.h>
#include "sysmets.h"

 

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK WndProc_temp (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

                    PSTR szCmdLine, int iCmdShow)

{

       static TCHAR szAppName[] = TEXT ("SysMets") ;

       HWND   hwnd ;

       MSG   msg ;

       WNDCLASS wndclass ;

       wndclass.style               = CS_HREDRAW | CS_VREDRAW ;

      // wndclass.lpfnWndProc  = WndProc_temp ;
   wndclass.lpfnWndProc  = WndProc ;

      wndclass.cbClsExtra     = 0 ;

      wndclass.cbWndExtra = 0 ;

      wndclass.hInstance       = hInstance ;

      wndclass.hIcon    = LoadIcon (NULL, IDI_APPLICATION) ;

       wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;

       wndclass.hbrBackground     = (HBRUSH) GetStockObject (WHITE_BRUSH) ;

       wndclass.lpszMenuName     = NULL ;

       wndclass.lpszClassName      = szAppName ;

      

       if (!RegisterClass (&wndclass)) 

     {

                MessageBox ( NULL, TEXT ("This program requires Windows NT!"),

                                 szAppName, MB_ICONERROR) ;

   

          return 0 ;

     }

    /*   hwnd = CreateWindow (szAppName, TEXT ("Get System Metrics No. 1"),

                     WS_OVERLAPPEDWINDOW,

                     CW_USEDEFAULT, CW_USEDEFAULT,

                     CW_USEDEFAULT, CW_USEDEFAULT,

                     NULL, NULL, hInstance, NULL) ;
*/

      hwnd = CreateWindow (szAppName, TEXT ("Get System Metrics No. 2"),

                     WS_OVERLAPPEDWINDOW | WS_VSCROLL,

                     CW_USEDEFAULT, CW_USEDEFAULT,

                     CW_USEDEFAULT, CW_USEDEFAULT,

                     NULL, NULL, hInstance, NULL) ;

 

 

    // WM_CREATE消息是窗口消息处理程序接收到的第一个消息。
    // 在CreateWindow函数建立窗口时,Windows产生这个消息。
    // 发送了第一个消息

       ShowWindow (hwnd, iCmdShow) ;
    // 调用ShowWindow之后接收到第一个WM_CREATE消息

       UpdateWindow (hwnd) ;

       while (GetMessage (&msg, NULL, 0, 0))

                       {

          TranslateMessage (&msg) ;

          DispatchMessage (&msg) ;

              }

       return msg.wParam ;

      }

 

LRESULT CALLBACK WndProc_temp (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
       static int  cxChar, cxCaps, cyChar, cyClient, iVscrollPos, iVscrollMax ;
       HDC         hdc ;    
       int         i; 
       PAINTSTRUCT ps ;
       TCHAR       szBuffer[10] ;     
       TEXTMETRIC  tm ;   

       switch (message)
     {
      case WM_CREATE:
            hdc = GetDC (hwnd) ; // 取得窗口的设备环境
            GetTextMetrics (hdc, &tm) ; // 取得默认系统字体的文本大小
            cxChar = tm.tmAveCharWidth ; // 平均字符宽度
            cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ; // 大写字母的平均宽度
   // SYSMETS1还将大写字母的平均宽度保存在静态变量cxCaps中。对于固定宽度的字体,
   // cxCaps等于cxChar。对于可变宽度字体,cxCaps设定为cxChar乘以150%。
   // 对于可变宽度字体,TEXTMETRIC结构中的tmPitchAndFamily栏位的低位为1,
   // 对于固定宽度字体,该值为0。 SYSMETS1使用这个位从cxChar计算cxCaps:
            cyChar = tm.tmHeight + tm.tmExternalLeading ; // 字符的总高度(包括外部间距)
            ReleaseDC (hwnd, hdc) ;
   //SetScrollRange (hwnd, SB_VERT, 0, NUMLINES - 1, FALSE) ;
            //SetScrollPos   (hwnd, SB_VERT, iVscrollPos, TRUE) ;
            return 0 ;
//===================================================================================
      case WM_SIZE:
              cyClient = HIWORD (lParam) ;
     iVscrollMax = max (0, NUMLINES - cyClient / cyChar) ;
              SetScrollRange (hwnd, SB_VERT, 0, iVscrollMax, TRUE) ;
              return 0 ;
//====================================================================================
       case WM_VSCROLL:
              switch (LOWORD (wParam))
          {
       case SB_LINEUP:
             iVscrollPos -= 1 ;
              break ;
       case SB_LINEDOWN:
              iVscrollPos += 1 ;
              break ;
       case SB_PAGEUP:
              iVscrollPos -= cyClient / cyChar ;
              break ;
       case SB_PAGEDOWN:
              iVscrollPos += cyClient / cyChar ;
              break ;
       case SB_THUMBPOSITION:
              iVscrollPos = HIWORD (wParam) ;
              break ;
       default :
              break ;
          }
       iVscrollPos = max (0, min (iVscrollPos, NUMLINES - 1)) ;
       if (iVscrollPos != GetScrollPos (hwnd, SB_VERT))
          {
             SetScrollPos (hwnd, SB_VERT, iVscrollPos, TRUE) ;
             InvalidateRect (hwnd, NULL, TRUE) ; // 使整个窗口无效
          UpdateWindow (hwnd) ;
          }
              return 0 ;
//======================================================================
        case       WM_PAINT :
            hdc = BeginPaint (hwnd, &ps) ;
           
   
   
   
   for (i = 0 ; i < NUMLINES ; i++)
                     {
              TextOut (hdc, 0, cyChar * i,                     
                            sysmetrics[i].szLabel,
                            lstrlen (sysmetrics[i].szLabel)) ;
              TextOut (hdc, 22 * cxCaps, cyChar * i,     
                            sysmetrics[i].szDesc,
                            lstrlen (sysmetrics[i].szDesc)) ;
                     SetTextAlign (hdc, TA_RIGHT | TA_TOP) ;
              TextOut (hdc, 22 * cxCaps + 40 * cxChar, cyChar * i,    szBuffer,
       wsprintf (szBuffer, TEXT ("%5d"),
       GetSystemMetrics (sysmetrics[i].iIndex))) ;
                  SetTextAlign (hdc, TA_LEFT | TA_TOP) ;
          }
             EndPaint (hwnd, &ps) ;

              return 0 ;

       case WM_DESTROY :
              PostQuitMessage (0) ;
       return 0 ;
     }
       return DefWindowProc (hwnd, message, wParam, lParam) ;
}

 

 

 

 

 

 

 


//==================================================================================
//==================================================================================
//==================================================================================

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
       static int  cxChar, cxCaps, cyChar, cxClient, cyClient, iMaxWidth ;
       HDC       hdc ;
       int    i, x, y, iVertPos, iHorzPos, iPaintBeg, iPaintEnd ;
       PAINTSTRUCT ps ;
       SCROLLINFO  si ;
       TCHAR       szBuffer[10] ;
       TEXTMETRIC  tm ;

       switch (message)
    {
       case WM_CREATE:
              hdc = GetDC (hwnd) ;
       GetTextMetrics (hdc, &tm) ;
       cxChar = tm.tmAveCharWidth ;
       cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;
       cyChar = tm.tmHeight + tm.tmExternalLeading ;
       ReleaseDC (hwnd, hdc) ;

    // Save the width of the three columns
       iMaxWidth = 40 * cxChar + 22 * cxCaps ;
       return 0 ;

case WM_SIZE:
       cxClient = LOWORD (lParam) ;
       cyClient = HIWORD (lParam) ;

       // Set vertical scroll bar range and page size
       si.cbSize        = sizeof (si) ;
       si.fMask       = SIF_RANGE | SIF_PAGE ;
       si.nMin        = 0 ;
       si.nMax        = NUMLINES - 1 ;
       si.nPage        = cyClient / cyChar ;
       SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;

    // Set horizontal scroll bar range and page size
       si.cbSize        = sizeof (si) ;
       si.fMask       = SIF_RANGE | SIF_PAGE ;
       si.nMin        = 0 ;
       si.nMax        = 2 + iMaxWidth / cxChar ;
       si.nPage        = cxClient / cxChar ;
       SetScrollInfo (hwnd, SB_HORZ, &si, TRUE) ;
       return 0 ;

    //=========================================================
case WM_VSCROLL:
      // Get all the vertical scroll bar information
       si.cbSize        = sizeof (si) ;
       si.fMask       = SIF_ALL ;
       GetScrollInfo (hwnd, SB_VERT, &si) ;

    // Save the position for comparison later on
       iVertPos = si.nPos ;
       switch (LOWORD (wParam))
       {
       case SB_TOP:
              si.nPos   = si.nMin ;
              break ;

       case       SB_BOTTOM:
                si.nPos   = si.nMax ;
            break ;

       case SB_LINEUP:
              si.nPos  -= 1 ;
              break ;

       case       SB_LINEDOWN:
              si.nPos += 1 ;
              break ;

    case       SB_PAGEUP:
              si.nPos -= si.nPage ;
              break ;

       case       SB_PAGEDOWN:
              si.nPos += si.nPage ;
              break ;

       case       SB_THUMBTRACK:
              si.nPos = si.nTrackPos ;
              break ;

       default:
       break ;        
       }
      // Set the position and then retrieve it.  Due to adjustments
      //  by Windows it may not be the same as the value set.
       si.fMask = SIF_POS ;
       SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;
       GetScrollInfo (hwnd, SB_VERT, &si) ;

    // If the position has changed, scroll the window and update it
       if (si.nPos != iVertPos)
     {                   
              ScrollWindow (      hwnd, 0, cyChar * (iVertPos - si.nPos),
                                          NULL, NULL) ;
              UpdateWindow (hwnd) ;
       }
       return 0 ;

    //=============================================================
       case WM_HSCROLL:
            // Get all the vertical scroll bar information
              si.cbSize = sizeof (si) ;
              si.fMask  = SIF_ALL ;

             // Save the position for comparison later on
              GetScrollInfo (hwnd, SB_HORZ, &si) ;
              iHorzPos = si.nPos ;
              switch (LOWORD (wParam))
              {
       case       SB_LINELEFT:
              si.nPos -= 1 ;
              break ;

       case       SB_LINERIGHT:
              si.nPos += 1 ;
              break ;

              
       case       SB_PAGELEFT:
              si.nPos -= si.nPage ;
              break ;

       case       SB_PAGERIGHT:
             si.nPos += si.nPage ;
              break ;

       case       SB_THUMBPOSITION:
              si.nPos = si.nTrackPos ;
              break ;

           default :
              break ;
       }
       // Set the position and then retrieve it.  Due to adjustments
      //   by Windows it may not be the same as the value set.
              si.fMask = SIF_POS ;
              SetScrollInfo (hwnd, SB_HORZ, &si, TRUE) ;
              GetScrollInfo (hwnd, SB_HORZ, &si) ;
              // If the position has changed, scroll the window
       if (si.nPos != iHorzPos)
       {
              ScrollWindow (      hwnd, cxChar * (iHorzPos - si.nPos), 0,
                              NULL, NULL) ;
       }

       return 0 ;
 
    
case WM_PAINT :
              hdc = BeginPaint (hwnd, &ps) ;
              // Get vertical scroll bar position
       si.cbSize = sizeof (si) ;
       si.fMask  = SIF_POS ;
       GetScrollInfo (hwnd, SB_VERT, &si) ;
       iVertPos = si.nPos ;
             // Get horizontal scroll bar position
       GetScrollInfo (hwnd, SB_HORZ, &si) ;
       iHorzPos = si.nPos ;
              // Find painting limits
       iPaintBeg = max (0, iVertPos + ps.rcPaint.top / cyChar) ;
       iPaintEnd = min (   NUMLINES - 1,
                     iVertPos + ps.rcPaint.bottom / cyChar) ;
       for (i = iPaintBeg ; i <= iPaintEnd ; i++)
       {
              x = cxChar * (1 - iHorzPos) ;
              y = cyChar * (i - iVertPos) ;
              TextOut (hdc, x, y,
                     sysmetrics[i].szLabel,
                     lstrlen (sysmetrics[i].szLabel)) ;

              TextOut (hdc, x + 22 * cxCaps, y,
                     sysmetrics[i].szDesc,
                     lstrlen (sysmetrics[i].szDesc)) ;

              SetTextAlign (hdc, TA_RIGHT | TA_TOP) ;
              TextOut (hdc, x + 22 * cxCaps + 40 * cxChar, y, szBuffer,
                     wsprintf (szBuffer, TEXT ("%5d"),
                     GetSystemMetrics (sysmetrics[i].iIndex))) ;
   
     SetTextAlign (hdc, TA_LEFT | TA_TOP) ;
       }
              EndPaint (hwnd, &ps) ;
              return 0 ;

case WM_DESTROY :
              PostQuitMessage (0) ;
              return 0 ;
}

       return DefWindowProc (hwnd, message, wParam, lParam) ;
}

 

 

 

/*---------------------------------------------------------

 SYSMETS.H -- System metrics display structure

-----------------------------------------------------------*/

#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))

struct

{

       int         iIndex ;

       TCHAR *      szLabel ;

      TCHAR *      szDesc ;

}

sysmetrics [] =

{

      SM_CXSCREEN,    TEXT ("SM_CXSCREEN"),             

                      TEXT ("Screen width in pixels"),

       SM_CYSCREEN, TEXT ("SM_CYSCREEN"),             

                            TEXT ("Screen height in pixels"),

       SM_CXVSCROLL,       TEXT ("SM_CXVSCROLL"),            

                             TEXT ("Vertical scroll width"),

       SM_CYHSCROLL,      TEXT ("SM_CYHSCROLL"),            

                             TEXT ("Horizontal scroll height"),

       SM_CYCAPTION,       TEXT ("SM_CYCAPTION"),            

                            TEXT ("Caption bar height"),

       SM_CXBORDER,        TEXT ("SM_CXBORDER"),             

                             TEXT ("Window border width"),

       SM_CYBORDER,  TEXT ("SM_CYBORDER"),             

                             TEXT ("Window border height"),

       SM_CXFIXEDFRAME,TEXT ("SM_CXFIXEDFRAME"),         

                             TEXT ("Dialog window frame width"),

       SM_CYFIXEDFRAME,TEXT ("SM_CYFIXEDFRAME"),         

                             TEXT ("Dialog window frame height"),

       SM_CYVTHUMB,  TEXT ("SM_CYVTHUMB"),             

                            TEXT ("Vertical scroll thumb height"),

       SM_CXHTHUMB,    TEXT ("SM_CXHTHUMB"),             

                           TEXT ("Horizontal scroll thumb width"),

       SM_CXICON,          TEXT ("SM_CXICON"),               

                             TEXT ("Icon width"),

       SM_CYICON,           TEXT ("SM_CYICON"),               

                            TEXT ("Icon height"),

       SM_CXCURSOR,  TEXT ("SM_CXCURSOR"),             

                             TEXT ("Cursor width"),

       SM_CYCURSOR,    TEXT ("SM_CYCURSOR"),             

                             TEXT ("Cursor height"),

       SM_CYMENU,          TEXT ("SM_CYMENU"),               

                             TEXT ("Menu bar height"),

       SM_CXFULLSCREEN,TEXT ("SM_CXFULLSCREEN"),         

                             TEXT ("Full screen client area width"),

       SM_CYFULLSCREEN,TEXT ("SM_CYFULLSCREEN"),         

                             TEXT ("Full screen client area height"),

       SM_CYKANJIWINDOW,TEXT ("SM_CYKANJIWINDOW"),        

                              TEXT ("Kanji window height"),

       SM_MOUSEPRESENT, TEXT ("SM_MOUSEPRESENT"),         

                              TEXT ("Mouse present flag"),

       SM_CYVSCROLL, TEXT ("SM_CYVSCROLL"),            

                              TEXT ("Vertical scroll arrow height"),

       SM_CXHSCROLL,       TEXT ("SM_CXHSCROLL"),            

                             TEXT ("Horizontal scroll arrow width"),

       SM_DEBUG,      TEXT ("SM_DEBUG"),                

                              TEXT ("Debug version flag"),

       SM_SWAPBUTTON,     TEXT ("SM_SWAPBUTTON"),           

                              TEXT ("Mouse buttons swapped flag"),

       SM_CXMIN,       TEXT ("SM_CXMIN"),                

                              TEXT ("Minimum window width"),

       SM_CYMIN,       TEXT ("SM_CYMIN"),                

                              TEXT ("Minimum window height"),

       SM_CXSIZE,      TEXT ("SM_CXSIZE"),               

                              TEXT ("Min/Max/Close button width"),

       SM_CYSIZE,       TEXT ("SM_CYSIZE"),               

                              TEXT ("Min/Max/Close button height"),

       SM_CXSIZEFRAME,    TEXT ("SM_CXSIZEFRAME"),          

                              TEXT ("Window sizing frame width"),

       SM_CYSIZEFRAME,    TEXT ("SM_CYSIZEFRAME"),          

                              TEXT ("Window sizing frame height"),

       SM_CXMINTRACK,     TEXT ("SM_CXMINTRACK"),           

                              TEXT ("Minimum window tracking width"),

       SM_CYMINTRACK,     TEXT ("SM_CYMINTRACK"),           

                              TEXT ("Minimum window tracking height"),

       SM_CXDOUBLECLK,   TEXT ("SM_CXDOUBLECLK"),          

                              TEXT ("Double click x tolerance"),

       SM_CYDOUBLECLK,   TEXT ("SM_CYDOUBLECLK"),          

                              TEXT ("Double click y tolerance"),

       SM_CXICONSPACING,TEXT ("SM_CXICONSPACING"),        

                              TEXT ("Horizontal icon spacing"),

       SM_CYICONSPACING,TEXT ("SM_CYICONSPACING"),        

                              TEXT ("Vertical icon spacing"),

       SM_MENUDROPALIGNMENT,   TEXT ("SM_MENUDROPALIGNMENT"),    

                                     TEXT ("Left or right menu drop"),

       SM_PENWINDOWS,            TEXT ("SM_PENWINDOWS"),           

                                     TEXT ("Pen extensions installed"),

       SM_DBCSENABLED,           TEXT ("SM_DBCSENABLED"),          

                                     TEXT ("Double-Byte Char Set enabled"),

       SM_CMOUSEBUTTONS,         TEXT ("SM_CMOUSEBUTTONS"),        

                                     TEXT ("Number of mouse buttons"),

       SM_SECURE,                   TEXT ("SM_SECURE"),               

                                     TEXT ("Security present flag"),

       SM_CXEDGE,                   TEXT ("SM_CXEDGE"),               

                                     TEXT ("3-D border width"),

       SM_CYEDGE,                   TEXT ("SM_CYEDGE"),               

                                     TEXT ("3-D border height"),

       SM_CXMINSPACING,            TEXT ("SM_CXMINSPACING"),         

                                     TEXT ("Minimized window spacing width"),

       SM_CYMINSPACING,      TEXT ("SM_CYMINSPACING"),         

                                     TEXT ("Minimized window spacing height"),

       SM_CXSMICON,          TEXT ("SM_CXSMICON"),             

                                     TEXT ("Small icon width"),

       SM_CYSMICON,          TEXT ("SM_CYSMICON"),             

                                     TEXT ("Small icon height"),

       SM_CYSMCAPTION,           TEXT ("SM_CYSMCAPTION"),          

                                     TEXT ("Small caption height"),

       SM_CXSMSIZE,           TEXT ("SM_CXSMSIZE"),             

                                     TEXT ("Small caption button width"),

       SM_CYSMSIZE,            TEXT ("SM_CYSMSIZE"),             

                                     TEXT ("Small caption button height"),

       SM_CXMENUSIZE,              TEXT ("SM_CXMENUSIZE"),           

                                     TEXT ("Menu bar button width"),

       SM_CYMENUSIZE,              TEXT ("SM_CYMENUSIZE"),           

                                     TEXT ("Menu bar button height"),

       SM_ARRANGE,                TEXT ("SM_ARRANGE"),              

                                     TEXT ("How minimized windows arranged"),

       SM_CXMINIMIZED,            TEXT ("SM_CXMINIMIZED"),          

                                     TEXT ("Minimized window width"),

       SM_CYMINIMIZED,            TEXT ("SM_CYMINIMIZED"),          

                                     TEXT ("Minimized window height"),

       SM_CXMAXTRACK,            TEXT ("SM_CXMAXTRACK"),           

                                     TEXT ("Maximum draggable width"),

       SM_CYMAXTRACK,            TEXT ("SM_CYMAXTRACK"),           

                                     TEXT ("Maximum draggable height"),

       SM_CXMAXIMIZED,           TEXT ("SM_CXMAXIMIZED"),          

                                     TEXT ("Width of maximized window"),

       SM_CYMAXIMIZED,           TEXT ("SM_CYMAXIMIZED"),          

                                     TEXT ("Height of maximized window"),

       SM_NETWORK,           TEXT ("SM_NETWORK"),              

                                     TEXT ("Network present flag"),

       SM_CLEANBOOT,         TEXT ("SM_CLEANBOOT"),            

                                     TEXT ("How system was booted"),

       SM_CXDRAG,                   TEXT ("SM_CXDRAG"),               

                                     TEXT ("Avoid drag x tolerance"),

       SM_CYDRAG,                   TEXT ("SM_CYDRAG"),               

                                     TEXT ("Avoid drag y tolerance"),

       SM_SHOWSOUNDS,           TEXT ("SM_SHOWSOUNDS"),           

                                     TEXT ("Present sounds visually"),

       SM_CXMENUCHECK,          TEXT ("SM_CXMENUCHECK"),          

                                     TEXT ("Menu check-mark width"),

       SM_CYMENUCHECK,          TEXT ("SM_CYMENUCHECK"),          

                                   TEXT ("Menu check-mark height"),

       SM_SLOWMACHINE,          TEXT ("SM_SLOWMACHINE"),          

                                     TEXT ("Slow processor flag"),

       SM_MIDEASTENABLED,        TEXT ("SM_MIDEASTENABLED"),       

                                     TEXT ("Hebrew and Arabic enabled flag")

} ;


/*

        SM_MOUSEWHEELPRESENT,     TEXT ("SM_MOUSEWHEELPRESENT"),    

                                     TEXT ("Mouse wheel present flag"),

       SM_XVIRTUALSCREEN,         TEXT ("SM_XVIRTUALSCREEN"),       

                                     TEXT ("Virtual screen x origin"),

       SM_YVIRTUALSCREEN,         TEXT ("SM_YVIRTUALSCREEN"),       

                                     TEXT ("Virtual screen y origin"),

       SM_CXVIRTUALSCREEN,      TEXT ("SM_CXVIRTUALSCREEN"),      

                                     TEXT ("Virtual screen width"),

       SM_CYVIRTUALSCREEN,       TEXT ("SM_CYVIRTUALSCREEN"),      

                                     TEXT ("Virtual screen height"),

       SM_CMONITORS,               TEXT ("SM_CMONITORS"),            

                                     TEXT ("Number of monitors"),

       SM_SAMEDISPLAYFORMAT,     TEXT ("SM_SAMEDISPLAYFORMAT"),    

                                     TEXT ("Same color format flag")
 
  
  
   
   
    
    
     
     
      
      
       
       
        
        
         
       
        
        
         
         
          
          
           
           
            
            
             
             
              
              
*/              
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值