主要代码如下:
显示代码如下:
CDC * pDialogDC = GetDC();
Invalidate();
UpdateWindow();
CPen pen(PS_SOLID,2,RGB(255,0,0));
pDialogDC->SelectObject(&pen);

for (int i = 0;i < picVector.size(); i++)
{

switch(picVector[i]->picFlag)
{
case 0:
pDialogDC->MoveTo(picVector[i]->startPoint);
pDialogDC->LineTo(picVector[i]->endPoint);
break;
case 1:
pDialogDC->Ellipse(picVector[i]->startPoint.x,picVector[i]->startPoint.y,picVector[i]->endPoint.x,picVector[i]->endPoint.y);
break;
case 2:
pDialogDC->Rectangle(picVector[i]->startPoint.x,picVector[i]->startPoint.y,picVector[i]->endPoint.x,picVector[i]->endPoint.y);
break;
}
}
ReleaseDC(pDialogDC);
往vector容器中添加获取的元素(包括所画图的类型,鼠标按下、抬起两点):
void CForwardBackDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
upPoint = point;

CPicture * pPic = new CPicture();

pPic->picFlag = style;
pPic->startPoint = downPoint;
pPic->endPoint = upPoint;
picVector.push_back(pPic);
bakeupVector.push_back(pPic);
//delete pPic;//检查传递到容器中是否是地址传递,答案: 是
Invalidate();//只刷新对话框中控件 不刷新对话框自身
//UpdateWindow();
CDialog::OnLButtonUp(nFlags, point);
}
撤销代码如下:
if(picVector.size() > 0)
{
//delete picVector[picVector.size() - 1];
picVector.pop_back();

参考:

void CForwardBackDlg::OnPaint()

     CDC * pControlDC = GetDC();
     Invalidate();
     UpdateWindow();
     pControlDC->SelectStockObject(BLACK_BRUSH);
     pControlDC->Rectangle(0,0,100,100);
     ReleaseDC(pControlDC);

}

转载于:https://www.cnblogs.com/shenchao/archive/2012/10/04/2711455.html

VC :在对话框中绘图相关推荐

  1. VC++在对话框中加入属性页

    当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置.本文针对这种方法来讨论几种可能实现的方案. 方案一 本方案的例子请见源代码打包文件中的Property1部分 在对 ...

  2. VC 在对话框中增加菜单栏

    1.添加菜单资源      在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例 如:          菜单1             ...

  3. 我的VC++——对话框中显示GIF格式的图片

    PictureEx图片显示类支持以下格式的图片:GIF (including animated GIF87a and GIF89a), JPEG, BMP, WMF, ICO, CUR等,我特别推崇的 ...

  4. VC MFC程序,在About对话框中获取并显示程序的版本号

    =================================================本文为HeYuanHui原作 转载必须确保本文完整并完整保留原作者信息及本文原始链接! NN:     ...

  5. VC++6.0中使用GDI+绘图(转载)

    VC++6.0中使用GDI+绘图 1.在VC++6.0中配置GDI+环境 1.1 下载GDI+库 VC++6.0中没有GDI+库.可以从http://www.crazy-bit.com/downloa ...

  6. 在对话框中加入属性页

    资料来源 http://www.vckbase.com/document/viewdoc/?id=398 在对话框中加入属性页 作者:黄晨量 下载本文全部源代码 当一个基于对话框的程序中有相当多的控件 ...

  7. 内存中绘图 Memdc

    内存中绘图 Memdc CDC MemDC;   //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中 CBitmap MemBitmap; //定义一个位图对象 //随后建立与屏幕显示兼容的 ...

  8. 在VC++中访问和修改系统注册表

    Windows95/98的注册表包含了Windows95/98的系统配置.PC机的硬件配置.Win32应用程序和用户的其他设置信息.注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键 ...

  9. VC++6.0中内存泄漏检测 转

    最近看了周星星 Blog 中的一篇文章:"VC++6.0中内存泄漏检测",受益匪浅,便运行其例子代码想看看 Output 窗口中的输出结果,可惜怎么弄其输出都不是预期的东西,郁闷了 ...

最新文章

  1. ubuntu常用配置整理
  2. optee3.8 qemu_v8的环境搭建篇(ubuntu20.04)
  3. BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】
  4. python 判断列表为空_Python 判断列表为空
  5. 模糊查询关键字不区分大小写_SQL简单查询
  6. Redis的事务(一次执行多条命令,防止重读重写)
  7. PyTorch 深度学习:32分钟快速入门——ResNet
  8. 使用 Docker 搭建 Java Web 运行环境
  9. 电脑遇到打印机脱机状态如何解决
  10. [Python] np.unique(ndarray) 返回ndarray的无重复元素的数组
  11. 计算机硬件中板卡目前设备有哪几种,呼叫中心所需的硬件设备都有哪些?
  12. Ajax请求生成中文乱码问题
  13. Java中学生管理系统(对分数健康查询与修改)
  14. 我们最畅销的30本好书,都在这了
  15. 大学里大四的学生一般在干什么
  16. 我们且请仁兄到敝庄 水浒
  17. 玩转华为数据中心交换机系列 | 配置交换机双归接入IP网络示例
  18. Druid 索引服务的资源精细化调度
  19. java中的三目运算
  20. markdown图片左对齐问题

热门文章

  1. 《上海市居住证》积分申请基本流程
  2. 网络编程(3)-----------Javaweb
  3. 2021 河北取证比武决赛个人赛 题解 入侵溯源
  4. androidstudio配置夜深模拟器
  5. Word章节自动编号+题注自动编号+公式编号+交叉引用
  6. 小白web进阶(二)
  7. tiny4412 裸机程序 八、重定位到DRAM及LCD实验
  8. Unity3D开发之3D按钮的声音播放
  9. postfix+Dovecot自建邮箱服务器
  10. 五点三次平滑+python实现