为什么Bitblt不能工作

> case WM_PAINT: { > hdc = BeginPaint(hWnd, &ps); > // TODO: Add any drawing code here... > RECT rt; > GetClientRect(hWnd, &rt); > HDC myHdc = CreateCompatibleDC(hdc); > > DrawText(myHdc, szHello, strlen(szHello), &rt, DT_CENTER); > BitBlt(hdc,0,0,rt.right-rt.left,rt.bottom-rt.top,myHdc,0,0,SRCCOPY); > > EndPaint(hWnd, &ps); } > > break; 

为什么文字不能显示在窗口?

您需要创建BITMAP并在您的DC中选择它:

 RECT rt; GetClientRect(hWnd, &rt); HDC myHdc = CreateCompatibleDC(hdc); CBitmap bitmap = CreateCompatibleBitmap(hdc, width, height); HBITMAP oldBitmap = ::SelectObject(myHdc, bitmap); DrawText(myHdc, szHello, strlen(szHello), &rt, DT_CENTER); BitBlt(hdc,0,0,rt.right-rt.left,rt.bottom-rt.top,myHdc,0,0,SRCCOPY); ::SelectObject(myHdc, oldBitmap); EndPaint(hWnd, &ps);