love潇洒小峰 2015-09-23 06:24 采纳率: 75%
浏览 1841
已采纳

WIN32编程断点无法命中WM_TIMER消息

在WIN32编程中,设置了定时器,我在WM_Timer消息中打上断点,却无法命中断点,是怎么回事?
大家看看我的代码有没有问题?

 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    RECT    rect;   
    int TIMER1 = 1;
    SYSTEMTIME st;
    static TCHAR str[50];
    switch (message)
    {
    case WM_CREATE:SetTimer(hwnd, TIMER1, 100, NULL);
        return 0;       
    case WM_PAINT:
        hdc = GetDC(hwnd);      
        TextOut(hdc, 0, 0, str, 50);        
        ReleaseDC(hwnd, hdc);
        return 0;
    case WM_TIMER:
        GetLocalTime(&st);      
        GetTimeFormat(LOCALE_SYSTEM_DEFAULT, TIME_FORCE24HOURFORMAT, &st, "hh':'mm':'ss", str, 50);     
        return 0;
    case WM_DESTROY:
        KillTimer(hwnd, TIMER1);
        PostQuitMessage(0);
        return 0;


    }

    return DefWindowProc(hwnd, message, wParam, lParam);
}
  • 写回答

4条回答 默认 最新

  • oyljerry 2015-09-23 10:45
    关注
     /*--------------------------------------
       BEEPER1.C -- Timer Demo Program ver1
    --------------------------------------*/
    
    #include <windows.h>
    #include <stdlib.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("Beeper1");
        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, TEXT ("Beeper1 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)
    {
        HBRUSH          hBrush;
        HDC             hdc;
        PAINTSTRUCT     ps;
        RECT            rc;
    
        switch (message)
        {
        case WM_CREATE:
            SetTimer(hwnd, ID_TIMER, 1000, NULL);
            return 0 ;
    
        case WM_TIMER:
            MessageBeep(-1);
            InvalidateRect(hwnd, NULL, FALSE);
            return 0;
    
        case WM_PAINT:
            hdc = BeginPaint (hwnd, &ps) ;
    
            GetClientRect(hwnd, &rc);
            hBrush = CreateSolidBrush(RGB(rand()%255, rand()%255, rand()%255));
            FillRect(hdc, &rc, hBrush);
    
            EndPaint (hwnd, &ps) ;
            return 0 ;
    
        case WM_DESTROY:
            KillTimer(hwnd, ID_TIMER);
            PostQuitMessage (0) ;
            return 0 ;
        }
        return DefWindowProc (hwnd, message, wParam, lParam) ;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)