资源简介
使用C/C++编写的简易画图程序
功能:①绘制线,矩形,椭圆,文本
②保存图元到文件,并能够从文件加载图像
③能够通过鼠标点击选中图形,并进行属性的修改,修改的内容可包括:
修改图元的大小,位置,画笔画刷属性,文本的字体和内容,删除图形
【使用了动态缓冲绘图方法,能够通过鼠标右键精确选中图形,纯WinSDK,不是MFC!!!】
【实验五,山大威海】
代码片段和文件信息
/*******************************************************************
程序:实验五
文件:func.cpp
功能:绘图
时间:2016.05.11
********************************************************************/
#include
#include “resource.h“
#include“func.h“
#include
#include
void DrawMyLine(HDC hdc PMYPIC pLine) // 绘制一条线
{
HPEN hPen = CreatePenIndirect(&(pLine->logpen));
HPEN hPenOld = (HPEN)Selectobject(hdc hPen);
MoveToEx(hdc pLine->ptS.x pLine->ptS.y NULL);
LineTo(hdc pLine->ptE.x pLine->ptE.y);
Selectobject(hdc hPenOld);
Deleteobject(hPen);
}
void DrawMyRect(HDC hdc PMYPIC pRect) // 绘制一个矩形
{
HPEN hPen = CreatePenIndirect(&(pRect->logpen));
HPEN hPenOld = (HPEN)Selectobject(hdc hPen);
HBRUSH hNewBrush = CreateBrushIndirect (&(pRect->logbrush));
HBRUSH hOldBrush = (HBRUSH)Selectobject (hdc hNewBrush);
Rectangle(hdcpRect->ptS.xpRect->ptS.ypRect->ptE.xpRect->ptE.y);
Selectobject(hdc hPenOld);
Deleteobject(hPen);
Selectobject(hdchOldBrush);
Deleteobject(hNewBrush);
}
void DrawMyEll(HDC hdc PMYPIC pRect) // 绘制一个椭圆
{
HPEN hPen = CreatePenIndirect(&(pRect->logpen));
HPEN hPenOld = (HPEN)Selectobject(hdc hPen);
HBRUSH hNewBrush = CreateBrushIndirect (&(pRect->logbrush));
HBRUSH hOldBrush = (HBRUSH)Selectobject (hdc hNewBrush);
Ellipse(hdcpRect->ptS.xpRect->ptS.ypRect->ptE.xpRect->ptE.y);
Selectobject(hdc hPenOld);
Deleteobject(hPen);
Selectobject(hdchOldBrush);
Deleteobject(hNewBrush);
}
void DrawMyText(HDC hdcPMYPIC pText) //画文字
{
HFONT hFont=CreateFontIndirect(&(pText->logfont));
HFONT hFontOld = (HFONT)Selectobject (hdc hFont);
SetTextColor(hdcpText->textColor);
TextOut(hdc(pText->ptS.x+pText->ptE.x)/2(pText->ptS.y+pText->ptE.y)/2pText->szTextlstrlen(pText->szText));
GetTextExtentPoint32 (hdcpText->szText lstrlen (pText->szText) &pText->size);
Selectobject(hdchFontOld);
Deleteobject (hFont);
}
int Sum_Pics(PMYPIC pPicint len)//返回现有图片总数
{
for (int i=0;i {
if (pPic[i].order==0)
return i;
}
return 0;//保留
}
void DrawAll(HDC hdc PMYPIC pPicint count)//画所有图像,包括线,矩形,椭圆
{
for (int i=0;i {
if(pPic[i].DrawObj==0)break;
switch (pPic[i].DrawObj)
{
case ID_PIC_LINE:DrawMyLine(hdc&(pPic[i]));break;
case ID_PIC_RECT:DrawMyRect(hdc&(pPic[i]));break;
case ID_PIC_ELL: DrawMyEll(hdc&(pPic[i]));break;
case ID_PIC_TEXT:DrawMyText(hdc&(pPic[i]));break;//
default: break;
}
}
}
void SaveData(PMYPIC pPicint len)//保存图像到文件
{
FILE* fp;
errno_t err;
if((err=fopen_s(&fp“data.bin““wb+“))==0)
{
fwrite(pPicsizeof(*pPic)lenfp);
fclose(fp);
MessageBox(NULL L“保存成功!“L“提示“MB_ICONEXCLAMATION|MB_OK);
}
else MessageBox(NULL L“保存失败!“L“Error!“MB_ICONEXCLAMATION|MB_OK);;
}
void ClearArg(PMYPIC pPicint len)//清空储存图像的数组
{
for(int i=0;i {
pPic[i].ptS.x=0;
pPic[i].ptS.y=0;
pPic[i].ptE.x=0;
pPic[i].ptE.y=0;
pPic[i].logpen.lopnColor
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-05-29 17:47 Debug\
文件 57344 2016-05-29 17:46 Debug\实验五.exe
目录 0 2016-05-29 17:47 实验五\
文件 894 2016-05-29 17:45 实验五.sln
文件 23552 2016-05-29 17:47 实验五.v11.suo
文件 6202 2016-05-26 13:06 实验五\func.cpp
文件 1279 2016-05-15 12:56 实验五\func.h
文件 1886 2016-05-12 12:59 实验五\ICON1.ico
文件 766 2016-05-26 12:38 实验五\lmove.cur
文件 16594 2016-05-29 17:44 实验五\main.cpp
文件 326 2016-05-12 13:20 实验五\POINTER.cur
文件 4396 2016-05-29 17:46 实验五\resource.h
文件 13678 2016-05-13 21:14 实验五\实验五.rc
文件 4466 2016-05-29 17:46 实验五\实验五.vcxproj
文件 1687 2016-05-29 17:46 实验五\实验五.vcxproj.filters
- 上一篇:C++数值算法 C数值算法 的随书代码
- 下一篇:SIFT检测特征点及特征点描述
相关资源
- C++网络爬虫项目
- 泡泡堂(炸弹人)小游戏C/C++完整源码
- 我见过最漂亮的CS仿真程序openGL和C+
- 使用C/C++读取BITMAP的内容
- libcurl-7.19.3-win32-ssl-msvc.zip
- VC图像处理-用Canny算子提取边缘
- C/C++视频教程
- 个人总结的一些C/C++编码规范
- 高斯消去法求解线性方程组C/C++程序输
- celrityC/C++源码查看工具
- 网络编程MFC 实验四 FTP客户端功能实现
- C/C++语言大作业、小游戏
- 完整的C/C++时序的B+树数据库系统实现
- VC++ 推箱子游戏源代码(双缓存版)
- VC++ Win32俄罗斯方块游戏源码(新)
- Eclipse C/C++ 自动补全的cdt补丁
- MFC实现简易画图程序
- MongoDB C/C++开发使用案例Demo
- C/C++使用WinIO读取CMOS数据代码
- Diab C/C++ Compiler for PowerPC
- 台球游戏源代码
- Borland C/C++ 3.1精简版
- 基于UDP的简单可视化界面聊天程序c
- MinGW Windows 下gnu C/C++编译器
- 基于linux C/C++和Qt的聊天程序
- C++ 排课程序源代码
- c/c++查询纯真ip数据库类源代码
- MFC简单画图程序,重绘,点,线,矩
- 自己编写的C++基于socket编程的UDP聊天
- 用过最好用的C/C++/STLchm格式的帮助文
评论
共有 条评论