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

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

?? sysmets.c

?? Programming Visual C++ 5th edition source code
?? C
字號:
/*---------------------------------------------------
   SYSMETS.C -- Final System Metrics Display Program 
                (c) Charles Petzold, 1998
  ---------------------------------------------------*/

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500   // for Mouse Wheel support
#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 ("SysMets") ;
     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"),
                          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 ;
     static int  iDeltaPerLine, iAccumDelta ;     // for mouse wheel logic
     HDC         hdc ;
     int         i, x, y, iVertPos, iHorzPos, iPaintBeg, iPaintEnd ;
     PAINTSTRUCT ps ;
     SCROLLINFO  si ;
     TCHAR       szBuffer[10] ;
     TEXTMETRIC  tm ;
     ULONG       ulScrollLines ;                  // for mouse wheel logic
     
     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 ;

               // Fall through for mouse wheel information

     case WM_SETTINGCHANGE:
          SystemParametersInfo (SPI_GETWHEELSCROLLLINES, 0, &ulScrollLines, 0) ;
          
               // ulScrollLines usually equals 3 or 0 (for no scrolling)
               // WHEEL_DELTA equals 120, so iDeltaPerLine will be 40

          if (ulScrollLines)
               iDeltaPerLine = WHEEL_DELTA / ulScrollLines ;
          else
               iDeltaPerLine = 0 ;

          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_KEYDOWN :
          switch (wParam)
          {
          case VK_HOME :
               SendMessage (hwnd, WM_VSCROLL, SB_TOP, 0) ;
               break ;
               
          case VK_END :
               SendMessage (hwnd, WM_VSCROLL, SB_BOTTOM, 0) ;
               break ;
               
          case VK_PRIOR :
               SendMessage (hwnd, WM_VSCROLL, SB_PAGEUP, 0) ;
               break ;
               
          case VK_NEXT :
               SendMessage (hwnd, WM_VSCROLL, SB_PAGEDOWN, 0) ;
               break ;
               
          case VK_UP :
               SendMessage (hwnd, WM_VSCROLL, SB_LINEUP, 0) ;
               break ;
               
          case VK_DOWN :
               SendMessage (hwnd, WM_VSCROLL, SB_LINEDOWN, 0) ;
               break ;
               
          case VK_LEFT :
               SendMessage (hwnd, WM_HSCROLL, SB_PAGEUP, 0) ;
               break ;
               
          case VK_RIGHT :
               SendMessage (hwnd, WM_HSCROLL, SB_PAGEDOWN, 0) ;
               break ;
          }
          return 0 ;

     case WM_MOUSEWHEEL:
          if (iDeltaPerLine == 0)
               break ;

          iAccumDelta += (short) HIWORD (wParam) ;     // 120 or -120

          while (iAccumDelta >= iDeltaPerLine)
          {               
               SendMessage (hwnd, WM_VSCROLL, SB_LINEUP, 0) ;
               iAccumDelta -= iDeltaPerLine ;
          }

          while (iAccumDelta <= -iDeltaPerLine)
          {
               SendMessage (hwnd, WM_VSCROLL, SB_LINEDOWN, 0) ;
               iAccumDelta += iDeltaPerLine ;
          }

          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一区二区三区免费野_久草精品视频
日韩精品五月天| 久久综合色婷婷| 久久丁香综合五月国产三级网站| 久久久久久久久久久久电影 | 久久久亚洲国产美女国产盗摄| hitomi一区二区三区精品| 国产精品一级黄| 九一久久久久久| 另类小说欧美激情| 日韩电影在线观看电影| 亚洲成人动漫一区| 蜜桃精品在线观看| 麻豆精品视频在线| 国内精品免费**视频| 精品一区二区三区视频在线观看| 日韩专区中文字幕一区二区| 亚洲www啪成人一区二区麻豆| 欧美色大人视频| 欧美人动与zoxxxx乱| 欧美精选午夜久久久乱码6080| 欧美在线999| 欧美日韩国产综合一区二区| 欧美成人激情免费网| 日韩精品一区在线| 日韩欧美中文字幕公布| 国产农村妇女精品| 欧美高清在线精品一区| 一二三区精品福利视频| 亚洲成人在线网站| 一区二区三区在线观看欧美 | 亚洲成在线观看| 亚洲成人免费av| 国产真实乱对白精彩久久| 国产一区二区三区四区五区入口 | 91色porny| 欧美高清dvd| 欧美tickle裸体挠脚心vk| 国产成人99久久亚洲综合精品| 成人久久视频在线观看| 91国产视频在线观看| 久久青草国产手机看片福利盒子| 中文字幕乱码久久午夜不卡 | 欧美精品在欧美一区二区少妇| 欧美日韩高清一区二区不卡| 欧美国产视频在线| 一区二区三区久久久| 国产主播一区二区三区| 91啪亚洲精品| 国产亚洲女人久久久久毛片| 亚洲同性同志一二三专区| 亚洲欧美一区二区在线观看| 寂寞少妇一区二区三区| 99精品国产99久久久久久白柏| 欧美一区二区福利在线| 亚洲视频一区在线| 日韩国产欧美视频| 国产成人免费视频网站| 欧美日韩aaa| 一区二区视频在线看| 久久精品72免费观看| 欧美日韩高清不卡| 亚洲欧洲日韩在线| 狠狠色丁香九九婷婷综合五月| 91久久精品一区二区三区| 久久中文字幕电影| 久久99这里只有精品| 欧美亚洲国产怡红院影院| 亚洲视频一区在线观看| 国产成人免费视| 欧美精品一二三四| 夜夜操天天操亚洲| voyeur盗摄精品| 国产精品每日更新| 国产一区日韩二区欧美三区| 日韩欧美三级在线| 亚洲电影在线免费观看| 在线亚洲一区二区| 亚洲图片你懂的| 国产v日产∨综合v精品视频| 中文乱码免费一区二区| 国产在线精品一区二区夜色| 精品国产凹凸成av人导航| 日本最新不卡在线| 日韩欧美在线网站| 日本不卡一区二区三区| 欧美日韩免费观看一区二区三区 | 日韩精品中文字幕在线一区| 亚洲国产成人av好男人在线观看| 91福利视频网站| 亚洲综合网站在线观看| 91福利社在线观看| 悠悠色在线精品| 成人综合婷婷国产精品久久免费| 国产拍揄自揄精品视频麻豆| 国产成人丝袜美腿| 亚洲综合免费观看高清完整版| 91啦中文在线观看| 亚洲高清免费观看| 91精品免费在线| 国模少妇一区二区三区| 国产欧美精品一区二区三区四区 | 日韩欧美123| 经典一区二区三区| 中文字幕一区免费在线观看| 91丨porny丨首页| 日韩高清一区在线| 日韩美女一区二区三区四区| 成人的网站免费观看| 亚洲免费观看高清完整版在线观看 | 成人性生交大片免费看视频在线 | 国产日韩高清在线| 91成人免费网站| 午夜精品福利久久久| 欧美国产国产综合| 欧美日韩aaaaaa| av在线综合网| 日韩avvvv在线播放| 久久亚洲精华国产精华液 | 久久综合色综合88| 国产91对白在线观看九色| 亚洲美女电影在线| 欧美一区国产二区| 色综合天天在线| 青青青爽久久午夜综合久久午夜| 国产精品免费av| 欧美精品久久天天躁| 麻豆91精品91久久久的内涵| 一区二区久久久久久| 日韩免费高清av| 欧美伊人久久大香线蕉综合69 | 91极品视觉盛宴| 精品一区二区三区影院在线午夜| 中文字幕一区二区三| 久久久久国产精品人| 欧美三级中文字幕在线观看| 青青草国产成人99久久| 综合久久久久久久| 日韩精品一区二区三区四区 | 97se亚洲国产综合自在线不卡 | 日av在线不卡| 天天色天天操综合| 中文字幕av资源一区| 久久久亚洲精品一区二区三区 | 国产精品乱码久久久久久| 欧美va亚洲va在线观看蝴蝶网| 91国在线观看| 在线观看网站黄不卡| 国产91精品在线观看| 国产成人精品影视| 久久99蜜桃精品| 亚洲一区二区欧美日韩| 亚洲欧美一区二区视频| 欧美xxx久久| 久久夜色精品国产欧美乱极品| 欧美无砖专区一中文字| 欧美体内she精视频| 91老司机福利 在线| 日本久久精品电影| 91亚洲大成网污www| 成人福利视频在线看| 91免费视频网址| 99久久婷婷国产综合精品电影| 国产激情视频一区二区三区欧美| 裸体在线国模精品偷拍| 麻豆精品一区二区三区| 国产最新精品精品你懂的| 精品一区二区三区免费播放| 国产美女视频一区| 国产精品996| 国产成人免费视频精品含羞草妖精 | 欧美日韩mp4| 日韩视频一区二区| 日韩免费看的电影| 欧美一区二区三区性视频| 久久免费电影网| 久久久噜噜噜久久人人看| 亚洲天堂av老司机| 亚洲黄色av一区| 久久精品国产精品亚洲精品| 蜜臀av国产精品久久久久| 大桥未久av一区二区三区中文| 成人免费视频caoporn| 欧美天堂亚洲电影院在线播放| 欧美精品少妇一区二区三区| 久久精品亚洲麻豆av一区二区| 国产日韩欧美a| 国产精品区一区二区三区| 亚洲va欧美va天堂v国产综合| 天使萌一区二区三区免费观看| 国产精品1区2区| 99国内精品久久| 精品久久久久久久一区二区蜜臀| 国产午夜精品久久久久久久| 亚洲一区二区三区四区五区中文| 日韩成人午夜电影| 色综合久久九月婷婷色综合| 老司机午夜精品99久久| 日韩va欧美va亚洲va久久| 成人午夜av电影| 欧美亚洲一区三区|