小编nvf*_*ayx的帖子

关于Windows GDI的困惑.新手程序员

我是一名中国学生,这是我在国外论坛上提出的第一个问题.我写了两个程序,一个可以正常运行,但另一个程序失败了.

这是正常的:

 case WM_PAINT:
      hdc = BeginPaint (hwnd, &ps) ;

      if(fIsTime)
          ShowTime(hdc, &st);
      else
          ShowDate(hdc, &st);

      EndPaint (hwnd, &ps) ;
      return 0 ;
Run Code Online (Sandbox Code Playgroud)

这是失败的一个:

 case WM_PAINT:
      hdc = BeginPaint (hwnd, &ps) ;
      hdcMem = ::CreateCompatibleDC(hdc);
      hBitmap = ::CreateCompatibleBitmap(hdc, cxClient, cyClient);
      ::SelectObject(hdcMem, hBitmap);

      if(fIsTime)
          ShowTime(hdcMem, &st);
      else
          ShowDate(hdcMem, &st);
      ::BitBlt(hdcMem, 0, 0, cxClient, cyClient, hdc, 0, 0, SRCCOPY);

      ::DeleteObject(hBitmap);
      ::DeleteDC(hdcMem);
      EndPaint (hwnd, &ps) ;
      return 0 ;
Run Code Online (Sandbox Code Playgroud)

两个代码之间的唯一区别是WM_Paint代码块,后者无法显示任何内容.我对后一个代码中的错误位置感到困惑?

winapi

4
推荐指数
1
解决办法
119
查看次数

标签 统计

winapi ×1