当前位置: 首页 > news >正文

【转载】MiniUtilityFramework(八):CImage和IMAGE

转载自:http://blog.csdn.net/norains/article/details/3957029

 

CImage是控件中最简单的一个,IMAGE是配置文件中也属于简单的一位。这简单的两者组合起来,就构成了程序中图片的显示。
    

CImage的头文件定义如下:

// Image.h: interface for the CImage class.  
//  
//  
  
#pragma once  
  
#include "..//Table//imageTabBase.h"  
  
  
class CImage    
{  
public:  
    //Before using you must call the function  
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Set image table object  
    //  
    //-------------------------------------------------------------------  
    void SetImgTab(CImageTabBase &imgTab);  
  
public:       
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Set the button position  
    //  
    //-------------------------------------------------------------------  
    void SetImgPosition(const RECT &rcWndImg);  
  
  
      
    //--------------------------------------------------------------------  
    //Description:  
    //  Set the visible  
    //  
    //Parameters:  
    //  bVisible:[in]  
    //      TRUE - visible  
    //      FALSE - invisible  
    //  
    //--------------------------------------------------------------------  
    void SetVisible(BOOL bVisible);  
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Set the transparent mode  
    //  
    //Parameters:  
    //  bTran:[in]  
    //      TRUE  - Don't draw the transparent color  
    //      FALSE - Draw all the color  
    //  
    //-------------------------------------------------------------------  
    void SetTransparent(BOOL bTran);  
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Set the transparent color  
    //  
    //-------------------------------------------------------------------  
    void SetTransparentColor(COLORREF crColor);  
  
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Draw the button  
    //  
    //-------------------------------------------------------------------  
    BOOL Draw(HDC hdc);   
  
      
    //--------------------------------------------------------------------  
    //Description:  
    //  Set the image index   
    //  
    //-------------------------------------------------------------------  
    void SetImgIndex(TSTRING strIndex);  
  
    //--------------------------------------------------------------------  
    //Description:  
    //  Get the image index   
    //  
    //-------------------------------------------------------------------  
    TSTRING GetImgIndex();  
  
public:  
    CImage();     
    virtual ~CImage();  
  
  
  
  
private:      
    RECT m_rcWndImg;  
    COLORREF m_crTranColor;  
    BOOL m_bTran;  
    BOOL m_bVisible;  
    TSTRING m_ImgIndex;  
    CImageTabBase *m_pImgTab;  

CImage的大部分函数,都和配置文件相关,由MUF读取然后自动调用,用户基本上不必进行干预。在实际的程序中,大概可能用到的也就只有两个函数,分别是SetVisible和SetImgIndex。顾名思义,前者是设置该控件是否可用,后者则是显示图片的序号(该序号是在配置文件中定义的)。
    
    配置文件也非常简单,只有简简单单的四项:
    
  TYPE:控件类型,这里只能为IMAGE
  
  RECT_POS:在窗口的位置
  
  IMAGE_FILE:图片的序列
  
  TRANSPARENT_MODE:取值为TRUE或FALSE。当为TRUE时,不绘制透明色。
  
  
  简单的一个配置文件的例子:
  
  [CIMG_BOOK]
  TYPE=IMAGE  
  RECT_POS=0,0,480,272  
  IMAGE_FILE=IMG_BOOK 
  TRANSPARENT_MODE=TRUE
  
  [IMG_BOOK]
  TYPE=IMAGE_FILE
  RECT_FILE=48,135,95,179
  FILE_NAME="%STARTUP_PATH%/UIImage/book.bmp"
  TRANSPARENT_COLOR=255,0,255
  
  
  对于上述的配置文件,MUF其实会自动调用如下函数:
  
  //伪代码
  CImage::SetImgPosition(RECT(0,0,480,272));
  CImage::SetTransparent(TRUE);
  CImage::SetTransparentColor(RGB(255,0,255));
  CImage::SetImgIndex(IMG_BOOK)
  
  除非用户在后续中对此会有更改,一般这些函数都不必再次调用。

转载于:https://www.cnblogs.com/hao507/articles/2276500.html

相关文章:

  • 11个Visual Studio代码性能分析工具
  • 先发一篇垫个底吧“有关地址转换(NAT)部分”
  • Java线
  • 京东商城商品价格获取方法
  • 【小学生入门级C++例题】第七章函数【第一天 学习C++】
  • 剑指offer-面试题2.实例Singleton模式
  • Linux环境下不重新编译php添加扩展模块
  • Ext.Net系列:二Event之DirectEvents
  • 字节对齐(Byte Alignment)
  • 【转】adb uninstall卸载apk文件说明
  • 2012年十大科技趋势:Siri将震惊世界
  • MSSQL 一个循环插入的列子
  • (function(){})()的分步解析
  • 『译』React Mixin 的使用
  • poj 1789 Truck History(kruskal算法)
  • 【前端学习】-粗谈选择器
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Create React App 使用
  • create-react-app项目添加less配置
  • ES6之路之模块详解
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • javascript 总结(常用工具类的封装)
  • JavaScript创建对象的四种方式
  • javascript数组去重/查找/插入/删除
  • Meteor的表单提交:Form
  • MySQL-事务管理(基础)
  • PAT A1092
  • PHP的类修饰符与访问修饰符
  • Python十分钟制作属于你自己的个性logo
  • tensorflow学习笔记3——MNIST应用篇
  • 创建一个Struts2项目maven 方式
  • 记一次和乔布斯合作最难忘的经历
  • 简单数学运算程序(不定期更新)
  • 力扣(LeetCode)357
  • 前嗅ForeSpider中数据浏览界面介绍
  • 算法-图和图算法
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 通过npm或yarn自动生成vue组件
  • 智能合约开发环境搭建及Hello World合约
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Java数据解析之JSON
  • linux 淘宝开源监控工具tsar
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #NOIP 2014#Day.2 T3 解方程
  • #宝哥教你#查看jquery绑定的事件函数
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core跨平台微服务学习资源