一个生成公章图片的简易工具
来源:互联网 发布:cms监控软件手机版 编辑:程序博客网 时间:2024/04/28 23:15
一个生成公章图片的简易工具
本例的运行结果图如下
一、功能与原理
学习VC也没多久,将我做的这个小工具和大家分享一下。其主要功能就是可以自定义生成公章图形并保存为bmp图片,希望对大家有点用。具体实现的方法如下:
步骤一:生成对话框工程,并加入相应的控件,图片的显示使用Picture控件;
步骤二:定义生成图形所需要的参数;
步骤三:通过参数定义,生成对应的Bitmap,再在Picture控件中显示该位图,具体实现参看源程序。
步骤四:将生成的Bitmap保存为位图文件。
二、程序实现的关键点
(一)、需要对LOGFONT、LOGPEN和LOGBRUSH结构很了解,并能灵活应用,特别是在排列字体的过程中,对字体的旋转角度以及定位点的设置。
//绘制图章基本图形
void CMakeSealDlg::DrawSeal(CDC * MemDC)
{
int cx = 100;
int cy = 100;
POINT point;
point.x = point.y = 5;
LOGPEN logPen;
logPen.lopnColor = ChooseColor(&m_nRadioColor);
//绘制背景
logPen.lopnStyle = PS_NULL;
logPen.lopnWidth = point;
(*MemDC).SelectObject(CreatePenIndirect(&logPen));
(*MemDC).Rectangle(0,0,200,200);
//设置绘笔
logPen.lopnStyle = PS_SOLID;
(*MemDC).SelectObject(CreatePenIndirect(&logPen));
//设置填充
LOGBRUSH logBrush;
logBrush.lbStyle = BS_HOLLOW;
logBrush.lbColor = RGB(255, 0, 0);
(*MemDC).SelectObject(CreateBrushIndirect(&logBrush));
//绘制外圆
(*MemDC).Ellipse(cx - m_nRadius, cy - m_nRadius, cx + m_nRadius, cy + m_nRadius);
} (二)、在显示预览时,通过使用 Picture 控件对内存中Bitmap的调用,可有效地防止因重绘造成的屏幕闪烁。
(1)创建位图
void CMakeSealDlg::CreateBmp(CBitmap *bitmap)
{
CClientDC dc(this);
//设置内存中CDC
CDC MemDC;
//创建相容的Bitmap和DC
bitmap->CreateCompatibleBitmap(&dc, 198, 198);
MemDC.CreateCompatibleDC(&dc);
MemDC.SelectObject(bitmap);
//在内存DC中绘制图章
DrawSeal(&MemDC);
DrawSealText(&MemDC);
DrawSubText1(&MemDC);
DrawSubText2(&MemDC);
//判断是否绘制五角星
if(m_bShowTri)
{
DrawTri(&MemDC);
}
//将创建图片保存在内存中
MemDC.SelectObject(bitmap);
MemDC.DeleteDC();
}(2)改变参数调用重绘函数//改变主字体宽度
void CMakeSealDlg::OnChangeMainWidth()
{
UpdateData(TRUE);
CSpinButtonCtrl*pSpin= (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_MAIN_WIDTH);
pSpin->SetPos(m_nMainWidth);
UpdateShow( );
}(3) 重绘picturevoid CMakeSealDlg::UpdateShow()
{
//删除过期的图形
m_pBitmap.DeleteObject();
//创建新的图形
CreateBmp(&m_pBitmap);
//在picture控件中显示位图
m_picture.SetBitmap((HBITMAP)m_pBitmap.Detach());
}(三)、保存位图文件详细见源文件,网上有很多详细的介绍,也可以参看MSDN,这里就不多讲了。
三、总结
这是我用VC做的第一个小程序,中间难免会有一些错误,另外保存图片的类型还没有完善,感兴趣的朋友也可继续扩展。总的来说,这个程序在逻辑字体、Spin控件、位图的应用上做了一个总体的概括,比较适合像我这样的新手借鉴学习。赫赫,有什么问题也可以给我来信联系 。
- 一个生成公章图片的简易工具
- 一个生成公章图片地简易工具
- 一个简易的9 patch图片解码工具
- php 简易的一个 验证码 生成
- 一个简易的正则表达式测试工具
- Java使用Graphics2D生成公章
- Java使用Graphics2D生成公章
- 手把手搭建一个简易的图片文件服务器
- 一个开源的从图片生成文本描述的工具:NeuralTalk
- js + jquery 生成一个简易的选项卡
- 一个简易版的T4代码生成"框架"
- 一个简易版的T4代码生成"框架"
- 用MFC的对话框制作一个简易的图片浏览器
- 用Excel做一个简易的投票工具
- 利用javaScript做一个简易的图片展示
- 二维码图片生成的工具类
- 生成带有文字图片的工具
- 一个批量生成缩略图工具的源代码
- Spring的核心机制----依赖注入
- 2007年度中国十八个绝对经典的事件
- 超强仿QQ自动伸缩窗口
- BMP图象解析
- 程序员35岁前成功的黄金法则
- 一个生成公章图片的简易工具
- JavaFX 新WebService客户端脚本语言
- ActiveMq的配置
- VC无闪烁刷屏技术的实现
- FlashFXP.v3.5.4.1230-RES-patch by SunBeam
- JavaFX FAQ
- 一个穷学生的创业经历
- Visual C++中的图形特技
- OD寄存器着色插件 by llydd