首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Bitblt不能工作

为什么Bitblt不能工作
EN

Stack Overflow用户
提问于 2011-04-01 09:33:10
回答 1查看 1.8K关注 0票数 1
代码语言:javascript
复制
>   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;

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-01 11:39:55

您需要创建位图并在DC中选择它:

代码语言:javascript
复制
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);  
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5508322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档