亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysmets3.c

?? widows編程例題程序1-6章
?? C
字號:
/*----------------------------------------------------
   SYSMETS3.C -- System Metrics Display Program No. 3
                 (c) Charles Petzold, 1998
  ----------------------------------------------------*/

#define WINVER 0x0500
#include <windows.h>
#include "sysmets.h"

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

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     static TCHAR szAppName[] = TEXT ("SysMets3") ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASS     wndclass ;
     
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     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 ("Program requires Windows NT!"), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }
     
     hwnd = CreateWindow (szAppName, TEXT ("Get System Metrics No. 3"),
                          WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          NULL, NULL, hInstance, NULL) ;
     
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;
     
     while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }
     return msg.wParam ;
}

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 vertial 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 vertial 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) ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品在线网站| 欧美日韩国产三级| 日本一区二区三级电影在线观看 | 欧美美女一区二区| 亚洲国产一区在线观看| 欧美日韩视频在线一区二区 | 精品国产伦理网| 国产一区二区在线影院| 国产片一区二区三区| 色综合视频一区二区三区高清| 玉足女爽爽91| 欧美一区二区三区四区高清 | 三级成人在线视频| 2021国产精品久久精品| 成人午夜精品在线| 丝袜诱惑亚洲看片| 久久久99精品免费观看| 色综合天天做天天爱| 日韩中文字幕不卡| 久久精品免费在线观看| 91在线观看高清| 青青草国产精品亚洲专区无| 国产三级一区二区三区| 欧美日韩视频第一区| 国产一区二区影院| 一区二区成人在线| 精品久久久久久久久久久院品网| 成人av第一页| 日本午夜一本久久久综合| 国产精品水嫩水嫩| 91精品欧美久久久久久动漫| 国产成人8x视频一区二区 | 欧美一区二区视频观看视频| 粉嫩av亚洲一区二区图片| 亚洲国产成人精品视频| 国产日韩欧美电影| 3d动漫精品啪啪| 91亚洲午夜精品久久久久久| 麻豆国产欧美一区二区三区| 亚洲欧美日韩中文播放| 久久久精品影视| 在线播放中文字幕一区| av激情成人网| 国产麻豆欧美日韩一区| 三级久久三级久久久| 亚洲精品日韩综合观看成人91| 国产清纯白嫩初高生在线观看91 | 91久久香蕉国产日韩欧美9色| 麻豆成人综合网| 亚洲国产精品一区二区久久| 国产精品私房写真福利视频| 精品sm在线观看| 欧美二区在线观看| 欧洲亚洲精品在线| 91免费视频观看| 国产999精品久久| 黑人巨大精品欧美黑白配亚洲| 午夜精品一区在线观看| 综合网在线视频| 国产精品国产三级国产普通话99| 亚洲精品一线二线三线| 91精品国产综合久久久久久| 欧美性三三影院| 在线观看视频一区| 色婷婷精品大在线视频| av亚洲产国偷v产偷v自拍| 成人国产精品免费观看| 国产成人av电影在线观看| 国产精品一线二线三线| 国产精品一二二区| 国产成人啪午夜精品网站男同| 国产一区二区三区黄视频| 九九九久久久精品| 精品在线亚洲视频| 精品亚洲成a人| 国产成人小视频| 成人激情av网| 99久久免费国产| 91传媒视频在线播放| 一本色道综合亚洲| 欧美日韩精品三区| 日韩限制级电影在线观看| 欧美一级高清片| 精品久久一区二区| 国产视频一区在线观看| 中文字幕一区二区三区不卡| 亚洲欧美怡红院| 亚洲黄色小说网站| 五月天婷婷综合| 久久99国产精品久久99果冻传媒| 国产一区高清在线| 91色|porny| 欧美二区乱c少妇| 精品国产一区二区精华| 国产精品无码永久免费888| 亚洲色图欧美在线| 性做久久久久久| 极品尤物av久久免费看| 成人精品免费看| 欧美亚州韩日在线看免费版国语版| 欧美男女性生活在线直播观看| 日韩欧美色综合网站| 国产精品色婷婷| 午夜精品一区在线观看| 韩国女主播一区二区三区| 成人精品一区二区三区四区 | 久热成人在线视频| 国产成人精品免费网站| 色就色 综合激情| 日韩欧美一级二级| 最新不卡av在线| 日韩高清欧美激情| 99精品欧美一区二区蜜桃免费| 欧美精品一卡两卡| 欧美国产欧美亚州国产日韩mv天天看完整 | 在线观看国产日韩| 久久人人97超碰com| 亚洲小少妇裸体bbw| 韩国视频一区二区| 在线观看网站黄不卡| 欧美精品一区二区三区蜜桃视频 | 欧美日韩综合在线免费观看| 久久女同互慰一区二区三区| 亚洲天堂免费在线观看视频| 精品亚洲国内自在自线福利| 欧洲一区在线电影| 欧美激情中文字幕| 老司机精品视频线观看86| 在线亚洲精品福利网址导航| 久久久亚洲国产美女国产盗摄| 亚洲一区av在线| 99国产精品久久久久久久久久| 欧美成人a在线| 性做久久久久久| 色视频欧美一区二区三区| 久久久91精品国产一区二区三区| 三级成人在线视频| 在线中文字幕不卡| 中文字幕精品一区二区三区精品| 免费欧美日韩国产三级电影| 欧美色视频在线观看| 亚洲视频一区二区在线| 国产99精品在线观看| 欧美成人video| 蜜臀国产一区二区三区在线播放| 在线观看一区二区视频| 成人免费在线播放视频| 国产成a人亚洲精| 欧美mv日韩mv国产网站app| 午夜精品久久久久久久| 欧美在线一二三| 一区二区三区在线观看动漫 | 亚洲综合视频在线| 色网站国产精品| ...xxx性欧美| 99热在这里有精品免费| 国产精品色噜噜| 不卡影院免费观看| 日本一区二区视频在线| 国产一区二区三区在线观看免费 | 99久久精品一区二区| 国产精品污网站| 不卡的电视剧免费网站有什么| 国产精品婷婷午夜在线观看| 成人激情午夜影院| 国产精品看片你懂得| 99久久99精品久久久久久| 亚洲人成亚洲人成在线观看图片| 99国产精品视频免费观看| 亚洲乱码中文字幕| 欧美在线你懂得| 午夜精品福利视频网站| 欧美一区二区三区性视频| 韩国成人在线视频| 国产欧美日韩久久| 不卡的av电影| 亚洲免费观看高清完整版在线| 在线观看免费亚洲| 天堂va蜜桃一区二区三区 | 国产精品久久看| 91色九色蝌蚪| 亚洲成人你懂的| 日韩小视频在线观看专区| 精品无码三级在线观看视频| 久久精品欧美一区二区三区不卡 | 欧美午夜精品电影| 日本欧美在线看| 国产喷白浆一区二区三区| 91在线视频免费观看| 亚洲第一在线综合网站| 日韩一级片在线播放| 国产二区国产一区在线观看| 亚洲男人电影天堂| 56国语精品自产拍在线观看| 国产在线国偷精品产拍免费yy| 中文字幕一区二区在线播放| 欧美日韩国产首页| 国产不卡在线视频| 亚洲国产日韩综合久久精品| 欧美一级欧美三级在线观看|