一个生成公章图片的简易工具

本例的运行结果图如下

  一、功能与原理

  学习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控件、位图的应用上做了一个总体的概括,比较适合像我这样的新手借鉴学习。赫赫,有什么问题也可以给我来信联系 。

<script src="http://rad.17luntan.com/Default.aspx?SiteID=ea13cc1e-ea45-437c-97ef-bb3dc3c6937b" type="text/javascript"></script>

一个生成公章图片的简易工具相关推荐

  1. python语言编写一个生成九宫格图片的代码_python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做 ...

  2. python语言编写一个生成九宫格图片的代码_Python 生成你的朋友圈九宫格图片

    关于微信之前写过以下文章,有兴趣可以点击查看: 你可能在朋友圈看过九宫格图片(把一张图片按照比例分成九份),就像这样的: 还有微博九宫格图 https://weibo.com/2717930601/. ...

  3. python语言编写一个生成九宫格图片的代码_用Python实现将一张图片分成9宫格的示例...

    经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下; 将图片分拆成九宫格的思路: 读取图片->填充图片为正方形(fill_image函数) ...

  4. 一个简单的图片管理小工具

    e图片管理是一个用go语言开发,图片管理小工具,支持按文件名搜索,点击图片名称显示图片. 在图片上所展示出内容之外有添加按钮和删除按钮,删除按钮带有二次确认.不需要联网. 文件下载链接 演示视频 ![ ...

  5. 一个生成代码图片的网站

    可以用来生成代码图片的网站. https://carbon.now.sh/ 注意:本文归作者所有,未经作者允许,不得转载

  6. 一个好用的基于若干静态图片生成gif图片的在线工具

    在线工具,无需安装,浏览器即可使用. 网址:http://www.atoolbox.net/ 添加想要生成gif的图片素材,支持批量上传: 延时的意思是,如果上传了三张图片A,B,C,前两张图片的延时 ...

  7. python标记_Python实现一个简单的图片物体标注工具

    # coding: utf-8 """ 物体检测标注小工具 基本思路: 对要标注的图像建立一个窗口循环,然后每次循环的时候对图像进行一次复制, 鼠标在画面上画框的操作.画 ...

  8. python语言编写一个生成九宫格图片的代码_Python切割图片成九宫格的示例代码

    这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理非常简单,那 ...

  9. python语言编写一个生成九宫格图片的代码_用Python一键生成炫酷九宫格图片,火了朋友圈...

    作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修能力,才能得到一张张达到女友要求的图片,真心不容易啊- 朋 ...

最新文章

  1. java网络流传输,中文乱码问题。
  2. spring boot地一讲
  3. webpack 打包第三方库_webpack打包分离第三方库和业务代码
  4. ipv4广播地址怎么填_什么是IP地址?IP地址有什么用?网络工程师来告诉你
  5. leetcode题解131-分割回文串
  6. 基于Spring Security的认证授权_连接数据库查询权限_Spring Security OAuth2.0认证授权---springcloud工作笔记131
  7. 需要安全认证的远程EJB调用示例(Jboss EAP 6.2环境)
  8. 演说之禅:幻灯片的演说是多多益善吗?
  9. 【翻译】YARN Architecture
  10. 免费开源!仿微信仿陌陌类APP源代码整项目开源,包括ADT项..
  11. 【Mac】 自带的播放器quicktimeplayer 如何带声音2倍速播放
  12. python画图的函数_python画图函数
  13. 【引人深思】程序员锁死服务器致公司倒闭
  14. 惠普微型计算机主机拆卸,HP 惠普 Pavilion Wave 台式主机 拆机
  15. Java项目:ssm+jsp实现手机WAP版外卖订餐系统
  16. 代码的坏味道与重构技术
  17. pdf合并在线,大家都在用的工具
  18. 彻底解决Qt中文乱码
  19. HDU 1415(Jugs)
  20. Google Gmail 使用 Outlook2003

热门文章

  1. H桥驱动电机,STM32 PWM互补输出功能误用分析
  2. 如何对接好线上支付?
  3. 埃及分数拆分——IDA*
  4. arcgis for js4二维地图比例尺
  5. (超详细)大数据Hadoop之HDFS组件
  6. win10下设置超清晰壁纸
  7. 使用Cookies登录网站--登录豆瓣网站
  8. 企业运维之kubernetes监控
  9. 确认过眼神—是我重返博客的第一文
  10. Android设计模式(十六)-中介者模式