为什么我的cview::OnDraw 绘制的是黑白的

fylinwater 2010-05-06 02:53:01
下面这段代码放到 Cview::OnDraw() 里,线没有画成红色的,而是黑的
{
CRect rect,ellipseRect;
GetClientRect(&rect);
CDC dcMem; //用于缓冲作图的内存DC
CBitmap bmp; //内存中承载临时图象的位图
dcMem.CreateCompatibleDC(pDC); //依附窗口DC创建兼容内存DC
bmp.CreateCompatibleBitmap(&dcMem,rect.Width(),rect.Height());//创建兼容位图
dcMem.SelectObject(&bmp); //将位图选择进内存DC
dcMem.FillSolidRect(rect,pDC->GetBkColor());//按原来背景填充客户区,不然会是黑色


// 在内存里操作图形

CPen gridPen(PS_SOLID, 3, RGB(255,0,0)); // 为什么选择颜色不其作用?
CPen* pOldPen;
pOldPen = dcMem.SelectObject(&gridPen);
dcMem.SaveDC();

dcMem.MoveTo(CPoint(0,0));
dcMem.LineTo(CPoint(100,300));
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);//将内存DC上的图象拷贝到前台
dcMem.DeleteDC(); //删除DC
bmp.DeleteObject();
}
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmanzhao 2010-05-06
  • 打赏
  • 举报
回复
CreateCompatibaleBitmap的时候,第一个参数改为pDC不要用dcMem
liboyanghui 2010-05-06
  • 打赏
  • 举报
回复
dcMem.FillSolidRect(rect,pDC->GetBkColor());//按原来背景填充客户区,不然会是黑色
划线
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);//将内存DC上的图象拷贝到前台

观摩的,不是很清楚。以前没试过每次重绘都填充客户区,在程序开始为其设定一个颜色,就不不管了。
cpp2017 2010-05-06
  • 打赏
  • 举报
回复
画的线是黑色的, 我希望画出彩色的线
==>原来这样.


bmp.CreateCompatibleBitmap(&dcMem,rect.Width(),rect.Height());//创建兼容位图

换成



bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());//创建兼容位图



fylinwater 2010-05-06
  • 打赏
  • 举报
回复
刀客的方法也没有效果

好像 CBitmap bmp; 只显示黑白图
fylinwater 2010-05-06
  • 打赏
  • 举报
回复
谢谢楼上热心,可是没有效果,你只是把我的背景改成了黑色的

dcMem.MoveTo(CPoint(0,0));
dcMem.LineTo(CPoint(100,300));
画的线是黑色的, 我希望画出彩色的线
uc_fly 2010-05-06
  • 打赏
  • 举报
回复
CPen gridPen(PS_SOLID, 3, RGB(255,0,0)); -->

CPen* pNewPen = new CPen(PS_SOLID, 3, RGB(255,0,0))
cpp2017 2010-05-06
  • 打赏
  • 举报
回复
dcMem.FillSolidRect(rect,pDC->GetBkColor());//按原来背景填充客户区,不然会是黑色
==>
dcMem.FillSolidRect(rect,RGB(0xff,0,0));
内容概要:本文提出了一种基于蒙特卡洛模拟与拉格朗日松弛法相结合的分散式优化方法,用于解决电动汽车充电站在分时电价机制下的有序充电调度问题。通过构建考虑用户充电需求与电网负荷平衡的优化模型,利用拉格朗日松弛法处理多车充电之间的耦合约束,实现去中心化的决策过程;同时引入蒙特卡洛方法模拟用户充电行为的不确定性,提升调度策略的鲁棒性。该方法有效降低了电网负荷峰谷差,提高了充电经济性与系统运行效率,为大规模电动汽车接入提供了可行的调度解决方案。; 适合人群:具备电力系统优化基础和Matlab编程能力的研究生、科研人员,以及从事智能电网、电动汽车能源管理等相关领域的工程技术人员。; 使用场景及目标:①应用于城市充电站集群的运营调度,实现削峰填谷与成本优化;②支撑电力系统需求侧管理研究,评估分时电价政策对用户充电行为的引导效果;③为多主体参与的分散式能源管理系统提供算法参考与仿真验证工具。; 阅读建议:建议读者结合提供的Matlab代码深入理解拉格朗日乘子迭代更新机制与蒙特卡洛场景生成流程,重点分析算法收敛性与不同电价策略下的调度结果差异,可通过调整用户数量、充电功率等参数进行仿真实验,以掌握模型的实际应用特性。

15,976

社区成员

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

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