Timer

Posted butchert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Timer相关的知识,希望对你有一定的参考价值。

#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
VOID CALLBACK fun(PVOID lp);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)        
{
    static TCHAR szAppName[] = TEXT ("HelloWin") ;   
    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 ("This program requires Windows NT!"), szAppName, MB_ICONERROR);
        return 0 ;    
    } 
    hwnd=CreateWindow(szAppName,      // window class name
        TEXT ("The Hello Program"),   // window caption
        WS_OVERLAPPEDWINDOW,  // window style
        CW_USEDEFAULT,// initial x position
        CW_USEDEFAULT,// initial y position
        CW_USEDEFAULT,// initial x size
        CW_USEDEFAULT,// initial y size
        NULL,                 // parent window handle
        NULL,            // window menu handle
        hInstance,   // program instance handle
        NULL) ;      // creation parameters
    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)   
{
    HDC            hdc ;  
    PAINTSTRUCT ps ;
    RECT        rect ;
    
    switch (message) 
    {
    case WM_CREATE:
        SetTimer(hwnd,2,1000,(TIMERPROC)fun);
        return 0 ;
    case   WM_PAINT:
        hdc = BeginPaint (hwnd, &ps) ;
        GetClientRect (hwnd, &rect) ;
        DrawText (hdc,
            TEXT ("Hello, Windows 98!"),
            -1,
            &rect,
            DT_SINGLELINE | DT_CENTER | DT_VCENTER);
        EndPaint (hwnd, &ps) ;
        return 0 ;  
    case   WM_DESTROY:
        PostQuitMessage (0) ;
        return 0;
    }
    return DefWindowProc (hwnd, message, wParam, lParam) ;      
}

VOID CALLBACK fun(PVOID lp)
{
    MessageBox(NULL,TEXT("HHHHHHHH"),TEXT("FFFFFF"),MB_OK);
}

 

以上是关于Timer的主要内容,如果未能解决你的问题,请参考以下文章

delphi中的timer 控件代码问题

vb中timer怎么用

c#出现timer线程跑丢的情况,网上有说明需要线程重启来解决问题,请提供举例代码。

Private Sub Timer1_Timer()这段代码的意思?

threading.Timer 延迟执行实例代码

VB中timer控件每隔一小时事件发生一次 代码