关于MFC中GDI创建屏幕DC问题

新建一个基于对话框的MFC文档,添加一个BUTTON,在BOTTON里添加处理函数voidCDemo142Dlg::OnTest(){//TODO:Addyourcont... 新建一个基于对话框的MFC文档,添加一个BUTTON,在BOTTON里添加处理函数

void CDemo142Dlg::OnTest()
{
// TODO: Add your control notification handler code here
CDC* pDC=new CDC();
//创建屏幕DC
pDC->CreateDC(_T("DISPALY"),NULL,NULL,NULL);
//设置背景模式
pDC->SetBkMode(TRANSPARENT);
//设置文本对齐方式
pDC->SetTextAlign(TA_CENTER);
//获得屏幕长度和高度
int cx=GetSystemMetrics(SM_CXSCREEN);
int cy=GetSystemMetrics(SM_CYSCREEN);
//在屏幕输出文字
pDC->TextOut(cx/2,cy/2-40,_T("屏幕DC"));
delete pDC;
}

程序编译链接通过,运行时点击BUTTON出错,求解!
展开
 我来答
Bhattacharrya
2010-12-02 · TA获得超过806个赞
知道小有建树答主
回答量:259
采纳率:42%
帮助的人:133万
展开全部
DC最好不要NEW出来,在MFC中有GetDC()和ReleaseDC();
在OnTest()中:
把你的CDC* pDC=new CDC();改成CDC* pDC = this->GetDC();
同时把 pDC->CreateDC(_T("DISPALY"),NULL,NULL,NULL);去掉
把delete pDC;改成ReleaseDC(pDC);
试试。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式