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

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

?? 8. 定時器.txt

?? 本書介紹了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序寫作的方法
?? TXT
?? 第 1 頁 / 共 4 頁
字號:
                  MessageBox (  NULL, TEXT ("Program requires Windows NT!"),
        
                                                                        szAppName, MB_ICONERROR) ;
        
                  return 0 ;
        
           }
        
   
        
           hwnd = CreateWindow ( szAppName, "Beeper2 Timer Demo",
        
                                                         WS_OVERLAPPEDWINDOW,
        
                                  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)
        
{
        
   switch (message)
        
    {
        
           case   WM_CREATE:
        
                  SetTimer (hwnd, ID_TIMER, 1000, TimerProc) ;
        
                 return 0 ;
        
       
        
           case   WM_DESTROY:
        
                  KillTimer (hwnd, ID_TIMER) ;
        
                  PostQuitMessage (0) ;
        
                  return 0 ;
        
           }
        
           return DefWindowProc (hwnd, message, wParam, lParam) ;
        
}
        

VOID CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
        
{
        
           static BOOL fFlipFlop = FALSE ;
        
           HBRUSH                        hBrush ;
        
           HDC                                  hdc ;
        
           RECT                                 rc ;
        
          
        
           MessageBeep (-1) ;
        
           fFlipFlop = !fFlipFlop ;
        
   
        
           GetClientRect (hwnd, &rc) ;
        
          hdc = GetDC (hwnd) ;
        
    hBrush = CreateSolidBrush (fFlipFlop ? RGB(255,0,0) : RGB(0,0,255)) ;
        
   
        
    FillRect (hdc, &rc, hBrush) ;
        
   ReleaseDC (hwnd, hdc) ;
        
   DeleteObject (hBrush) ;
        
}
        
方法三


設定定時器的第三種方法類似于第二種方法,只是傳遞給SetTimer的hwnd參數被設定為NULL,并且第二個參數(通常為定時器ID)被忽略了,最后,此函數傳回定時器ID:

iTimerID = SetTimer (NULL, 0, wMsecInterval, TimerProc) ;
        
如果沒有可用的定時器,那么從SetTimer傳回的iTimerID值將為NULL。

KillTimer的第一個參數(通常是窗口句柄)也必須為NULL,定時器ID必須是SetTimer的傳回值:

KillTimer (NULL, iTimerID) ;
        
傳遞給TimerProc定時器函數的hwnd參數也必須是NULL。這種設定定時器的方法很少被使用。如果在您的程序在不同時刻有一系列的SetTimer呼叫,而又不希望追蹤您已經用過了那些定時器ID,那么使用此方法是很方便的。

既然您已經知道了如何使用Windows定時器,就可以開始討論一些有用的定時器程序了。

定時器用于時鐘


時鐘是定時器最明顯的應用,因此讓我們來看看兩個時鐘,一個數字時鐘,一個模擬時鐘。

建立數字時鐘


程序8-3所示的DIGCLOCK程序,使用類似LED的7個顯示方塊顯示了目前的時間。

程序8-3  DIGCLOCK
        
DIGCLOCK.C
        
/*----------------------------------------------------------------------------
        
  DIGCLOCK.C --         Digital Clock
        
                                          (c) Charles Petzold, 1998
        
----------------------------------------------------------------------------*/
        
#include <windows.h>
        
#define ID_TIMER    1
        
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
        
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
        
                                                         PSTR szCmdLine, int iCmdShow)
        
{
        
   static TCHAR szAppName[] = TEXT ("DigClock") ;
        
           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 ("Digital Clock"),
        
                       WS_OVERLAPPEDWINDOW,
        
                       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 ;
        
           }
        

void DisplayDigit (HDC hdc, int iNumber)
        
{
        
           static BOOL  fSevenSegment [10][7] = {
        
                        1, 1,     1,     0,     1,     1,     1,            // 0
        
                        0, 0,     1,     0,     0,     1,     0,            // 1
        
                        1, 0,     1,     1,     1,     0,     1,            // 2
        
                        1, 0,     1,     1,     0,     1,     1,            // 3
        
                        0, 1,     1,     1,     0,     1,     0,            // 4
        
                        1, 1,     0,     1,     0,     1,     1,            // 5
        
                       1, 1,     0,     1,     1,     1,     1,            // 6
        
                        1, 0,     1,     0,     0,     1,     0,           // 7
        
                        1, 1,     1,     1,     1,     1,     1,            // 8
        
                        1, 1,     1,     1,     0,     1,     1 } ;         // 9
        
           static POINT ptSegment [7][6] = {
        
                                   7,  6,  11,   2,  31,  2, 35,  6,  31, 10, 11, 10,
        
                   6,  7,  10, 11, 10, 31, 6,   35, 2,  31, 2,  11,
        
                   36, 7,  40, 11, 40, 31, 36,  35, 32, 31, 32, 11,
        
                   7 , 36, 11, 32, 31, 32, 35,  36, 31, 40, 11, 40,
        
                   6 , 37, 10, 41, 10, 61, 6,   65, 2,  61, 2,  41,
        
                   36, 37, 40, 41, 40, 61, 36,  65, 32, 61, 32, 41,
        
                   7 , 66, 11, 62, 31, 62, 35,  66, 31, 70, 11, 70 } ;
        
    int           iSeg ;
        
           for (iSeg = 0 ; iSeg < 7 ; iSeg++)
        
                  if (fSevenSegment [iNumber][iSeg])
        
                                         Polygon (hdc, ptSegment [iSeg], 6) ;
        
}
        

void DisplayTwoDigits (HDC hdc, int iNumber, BOOL fSuppress)
        
{
        
           if (!fSuppress || (iNumber / 10 != 0))
        
                 DisplayDigit (hdc, iNumber / 10) ;
        
           OffsetWindowOrgEx (hdc, -42, 0, NULL) ;
        
           DisplayDigit (hdc, iNumber % 10) ;
        
          OffsetWindowOrgEx (hdc, -42, 0, NULL) ;
        
}
        

void DisplayColon (HDC hdc)
        
{
        
           POINT ptColon [2][4] = {      2,     21,    6,     17,    10,    21,    6,    25,
        
                               2,51,    6,     47,    10,    51,    6,     55 } ;
        

    Polygon (hdc, ptColon [0], 4) ;
        
    Polygon (hdc, ptColon [1], 4) ;
        

    OffsetWindowOrgEx (hdc, -12, 0, NULL) ;
        
}
        

void DisplayTime (HDC hdc, BOOL f24Hour, BOOL fSuppress)
        
{
        
    SYSTEMTIME st ;
        
    GetLocalTime (&st) ;
        
    if (f24Hour)
        
            DisplayTwoDigits (hdc, st.wHour, fSuppress) ;
        
    else
        
    DisplayTwoDigits (hdc, (st.wHour %= 12) ? st.wHour : 12, fSuppress) ;
        
    DisplayColon (hdc) ;
        
    DisplayTwoDigits (hdc, st.wMinute, FALSE) ;
        
    DisplayColon (hdc) ;
        
    DisplayTwoDigits (hdc, st.wSecond, FALSE) ;
        
}
        
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam)
        
{
        
    static BOOL           f24Hour, fSuppress ;
        
    static HBRUSH         hBrushRed ;
        
    static int                    cxClient, cyClient ;
        
    HDC                                         hdc ;
        
    PAINTSTRUCT   ps ;
        
    TCHAR                                szBuffer [2] ;
        

    switch (message)
        
           {
        
           case   WM_CREATE:
        
                  hBrushRed = CreateSolidBrush (RGB (255, 0, 0)) ;
        
                 SetTimer (hwnd, ID_TIMER, 1000, NULL) ;// fall through
        

    case   WM_SETTINGCHANGE:
        
            GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_ITIME, szBuffer, 2) ;
        
            f24Hour = (szBuffer[0] == '1') ;
        

            GetLocaleInfo (LOCALE_USER_DEFAULT, LOCALE_ITLZERO, szBuffer, 2) ;
        
            fSuppress = (szBuffer[0] == '0') ;
        

            InvalidateRect (hwnd, NULL, TRUE) ;
        
            return 0 ;
        

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人久久精品二区三区红 | 欧美性大战久久| 日本一道高清亚洲日美韩| 麻豆中文一区二区| 国产精品天干天干在线综合| 欧美日韩你懂的| 国产精品77777竹菊影视小说| 亚洲高清免费在线| 国产精品美女久久久久aⅴ| 欧美日韩成人综合| kk眼镜猥琐国模调教系列一区二区| 日韩高清一级片| 亚洲欧美日韩小说| 久久在线观看免费| 91麻豆精品国产无毒不卡在线观看 | 日本一区二区三区久久久久久久久不 | 99国产精品久| 国产九九视频一区二区三区| 91一区二区三区在线观看| 日本欧美一区二区| 一区二区三区 在线观看视频| 日韩专区欧美专区| 亚洲欧洲www| 国产精品污网站| 久久在线观看免费| 日韩小视频在线观看专区| 欧美系列亚洲系列| 色综合 综合色| 不卡一区中文字幕| 国产 日韩 欧美大片| 国产综合久久久久久久久久久久| 视频一区视频二区中文| 亚洲小少妇裸体bbw| 亚洲精品自拍动漫在线| 中文字幕在线观看不卡视频| 日本一区二区三级电影在线观看 | 色综合天天综合网国产成人综合天| 国产呦萝稀缺另类资源| 免费成人在线观看| 日本成人在线电影网| 五月婷婷久久丁香| 五月天亚洲精品| 日韩专区在线视频| 喷白浆一区二区| 韩国av一区二区三区| 国产麻豆一精品一av一免费| 国产福利一区在线| 国产成人精品免费网站| 成人美女在线视频| 成人国产在线观看| 色先锋资源久久综合| 在线一区二区视频| 欧美美女激情18p| 日韩一区二区三区免费看| 欧美xxxxx牲另类人与| 久久理论电影网| 国产精品午夜电影| 亚洲女子a中天字幕| 亚洲成av人片一区二区三区| 热久久一区二区| 韩国欧美国产1区| 成人91在线观看| 在线中文字幕一区二区| 91精品在线免费观看| 精品成人一区二区三区四区| 中文字幕精品一区二区三区精品 | 日本中文一区二区三区| 久久精品国产第一区二区三区| 国产一区二区三区不卡在线观看 | 亚洲18女电影在线观看| 蜜臀久久久久久久| 国产v日产∨综合v精品视频| 99久久99久久久精品齐齐| 欧美四级电影在线观看| 欧美一级理论性理论a| 国产欧美一区二区三区鸳鸯浴| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 成人精品免费看| 欧美午夜精品免费| 亚洲精品一区二区三区香蕉| 日韩一区欧美一区| 日本aⅴ亚洲精品中文乱码| 国产99一区视频免费| 欧美视频一区在线| 久久婷婷成人综合色| 亚洲免费av高清| 青青草97国产精品免费观看无弹窗版| 国产精品影音先锋| 欧美日韩一区 二区 三区 久久精品| 欧美草草影院在线视频| 亚洲九九爱视频| 国产一区二区三区免费| 欧洲精品在线观看| 精品久久久久久久久久久久久久久久久 | 国产精品一区专区| 欧洲另类一二三四区| 国产免费成人在线视频| 日韩av一区二区三区四区| 不卡一区中文字幕| 精品卡一卡二卡三卡四在线| 亚洲午夜羞羞片| 波多野结衣一区二区三区 | 欧美日韩一区二区三区四区五区| 精品欧美一区二区久久| 亚洲精品五月天| 国产 欧美在线| 欧美成人精精品一区二区频| 亚洲最大的成人av| aa级大片欧美| 国产视频一区在线观看 | 国产在线精品不卡| 欧美美女黄视频| 亚洲综合久久久久| 91污在线观看| 国产欧美日韩亚州综合| 精品一二三四区| 6080yy午夜一二三区久久| 一区二区免费看| 99re热视频精品| 欧美极品美女视频| 国产精品一线二线三线| 精品国内二区三区| 久久精品国产免费看久久精品| 欧美精品在线观看播放| 亚洲自拍与偷拍| 欧美亚一区二区| 亚洲精品国产精华液| 精品久久久三级丝袜| 亚洲成人av在线电影| 色综合久久久网| 亚洲男女一区二区三区| 99久久99久久精品国产片果冻| 久久久www免费人成精品| 国产综合久久久久影院| 精品久久五月天| 国产精品影音先锋| 欧美国产综合色视频| 不卡av电影在线播放| 国产日产亚洲精品系列| 国产精品99久| 国产精品污污网站在线观看 | eeuss鲁一区二区三区| 中文一区在线播放| 91在线观看污| 亚洲激情校园春色| 欧美日韩三级一区二区| 日日摸夜夜添夜夜添精品视频| 69堂精品视频| 韩日av一区二区| 国产欧美一区二区三区网站| 成人av在线资源网| 一区二区国产视频| 欧美精品久久久久久久久老牛影院| 婷婷国产在线综合| 日韩欧美精品在线| 国产成人av影院| 国产精品传媒在线| 色美美综合视频| 午夜精品影院在线观看| 欧美一区二区三区免费视频| 国产一区二区三区四| 国产精品久久午夜夜伦鲁鲁| 在线观看欧美精品| 免费人成网站在线观看欧美高清| 亚洲精品在线观| 94-欧美-setu| 日韩精品亚洲一区| 欧美激情在线一区二区| 91国产成人在线| 精品一区二区成人精品| 国产精品电影一区二区三区| 欧美日韩不卡一区| 国产精一品亚洲二区在线视频| 最新中文字幕一区二区三区| 欧美欧美欧美欧美| 国产成人在线免费| 一区二区三区四区不卡在线| 日韩欧美国产不卡| 不卡av免费在线观看| 日韩高清不卡一区二区| 亚洲欧美综合另类在线卡通| 9191成人精品久久| 成人ar影院免费观看视频| 日韩高清国产一区在线| 国产精品久久久久久福利一牛影视 | 日韩免费电影一区| 成人高清伦理免费影院在线观看| 亚洲成a人片综合在线| 欧美激情在线观看视频免费| 欧美日本一区二区在线观看| 国产精品综合av一区二区国产馆| 亚洲一二三四在线观看| 久久久久久久久久久久久久久99 | 92国产精品观看| 久久国产精品99精品国产| 亚洲少妇30p| 久久精品欧美一区二区三区不卡 | 亚洲午夜三级在线| 日本一区二区三区在线不卡| 这里只有精品免费|