GDI+ 绘图基础问题

a609468036 2017-11-17 11:09:24


CString sText = "TEXT";
CRect rect;
GetClientRect(&rect);
Bitmap * bmSave = new Bitmap(rect.right - rect.left,rect.bottom - rect.top);
Graphics * gSave = Graphics::FromImage(bmSave);
gSave->Clear(Color.White);

Pen pen(RGB(0,100,100), 1);
Point point1(100,100);
Point point2(300,300);
gSave->DrawLine(&pen,point1,point2);
gSave->DrawLine(&pen,300,300,800,600);

CPen pPen(PS_SOLID,1,RGB(255,0,0));
POINT pPoint1;
POINT pPoint2;
pPoint1.x = 10;
pPoint1.y = 10;
pPoint2.x = 500;
pPoint2.y = 500;
CClientDC ClientDc(this);
CDC * cDC = new CDC;
cDC->CreateCompatibleDC(&ClientDc);
cDC->SelectObject(bmSave);
cDC->SelectObject(pPen);
cDC->MoveTo(pPoint1);
cDC->LineTo(pPoint2);

CLSID clsid;
GetImageCLSID(L"image/jpeg",&clsid);

bmSave->Save(sfilename.AllocSysString(),&clsid,NULL);



Graphics * gSave = Graphics::FromImage(bmSave);
这是把gSave跟bmSave绑在一起了吗,
gSave.Clear 能成功,但是其他gSave.DrawLine跟GDI绘图都没有成功,保存出来就是一张白板,求大神指导一下
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-17
  • 打赏
  • 举报
回复
CClientDC ClientDc(this); CDC * cDC = new CDC; 这两句有问题,根本和gSave和bmSave没关系。
a609468036 2017-11-17
  • 打赏
  • 举报
回复
引用 7 楼 schlafenhamster 的回复:
Pen pen(Color(255,0,0,0), 1);// not RGB(0,100,100)
感谢感谢,非常感谢
schlafenhamster 2017-11-17
  • 打赏
  • 举报
回复
Pen pen(Color(255,0,0,0), 1);// not RGB(0,100,100)
a609468036 2017-11-17
  • 打赏
  • 举报
回复
引用 5 楼 VisualEleven 的回复:
你的代码是在哪里被调用的?
在自定义窗口类下面,继承自CWnd
Eleven 2017-11-17
  • 打赏
  • 举报
回复
你的代码是在哪里被调用的?
a609468036 2017-11-17
  • 打赏
  • 举报
回复
引用 2 楼 xianglitian 的回复:
这句代码的意思是通过bmSave创建了一个gSave对象
对gSave操作会影响到bmSave吗
a609468036 2017-11-17
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
CClientDC ClientDc(this); CDC * cDC = new CDC; 这两句有问题,根本和gSave和bmSave没关系。
gSave.Clear 能成功,但是其他gSave.DrawLine跟GDI绘图不成功是什么原因呢 我把这两句去掉还是没效果,能不能指导一下
向立天 2017-11-17
  • 打赏
  • 举报
回复
这句代码的意思是通过bmSave创建了一个gSave对象

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧