VC :在对话框中绘图
主要代码如下:
显示代码如下:
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 :在对话框中绘图相关推荐
- VC++在对话框中加入属性页
当一个基于对话框的程序中有相当多的控件时,你一定会想到使用属性页来将这些控件分类放置.本文针对这种方法来讨论几种可能实现的方案. 方案一 本方案的例子请见源代码打包文件中的Property1部分 在对 ...
- VC 在对话框中增加菜单栏
1.添加菜单资源 在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例 如: 菜单1 ...
- 我的VC++——对话框中显示GIF格式的图片
PictureEx图片显示类支持以下格式的图片:GIF (including animated GIF87a and GIF89a), JPEG, BMP, WMF, ICO, CUR等,我特别推崇的 ...
- VC MFC程序,在About对话框中获取并显示程序的版本号
=================================================本文为HeYuanHui原作 转载必须确保本文完整并完整保留原作者信息及本文原始链接! NN: ...
- 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 ...
- 在对话框中加入属性页
资料来源 http://www.vckbase.com/document/viewdoc/?id=398 在对话框中加入属性页 作者:黄晨量 下载本文全部源代码 当一个基于对话框的程序中有相当多的控件 ...
- 内存中绘图 Memdc
内存中绘图 Memdc CDC MemDC; //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中 CBitmap MemBitmap; //定义一个位图对象 //随后建立与屏幕显示兼容的 ...
- 在VC++中访问和修改系统注册表
Windows95/98的注册表包含了Windows95/98的系统配置.PC机的硬件配置.Win32应用程序和用户的其他设置信息.注册表和INI文件不同,它是多层次的树状数据结构,具有六个分支(根键 ...
- VC++6.0中内存泄漏检测 转
最近看了周星星 Blog 中的一篇文章:"VC++6.0中内存泄漏检测",受益匪浅,便运行其例子代码想看看 Output 窗口中的输出结果,可惜怎么弄其输出都不是预期的东西,郁闷了 ...
最新文章
- ubuntu常用配置整理
- optee3.8 qemu_v8的环境搭建篇(ubuntu20.04)
- BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】
- python 判断列表为空_Python 判断列表为空
- 模糊查询关键字不区分大小写_SQL简单查询
- Redis的事务(一次执行多条命令,防止重读重写)
- PyTorch 深度学习:32分钟快速入门——ResNet
- 使用 Docker 搭建 Java Web 运行环境
- 电脑遇到打印机脱机状态如何解决
- [Python] np.unique(ndarray) 返回ndarray的无重复元素的数组
- 计算机硬件中板卡目前设备有哪几种,呼叫中心所需的硬件设备都有哪些?
- Ajax请求生成中文乱码问题
- Java中学生管理系统(对分数健康查询与修改)
- 我们最畅销的30本好书,都在这了
- 大学里大四的学生一般在干什么
- 我们且请仁兄到敝庄 水浒
- 玩转华为数据中心交换机系列 | 配置交换机双归接入IP网络示例
- Druid 索引服务的资源精细化调度
- java中的三目运算
- markdown图片左对齐问题