zoukankan      html  css  js  c++  java
  • WowButtons与GdiDrawStream功能

    介绍 ThemeButton是一个CButton派生类。它是一个非常简单的图形按钮,有特殊的位图表示五种按钮状态:正常、热、按下、禁用和默认。按钮是绘制的窗口,它的主题可改变的按钮。每个主题位图有一个背景色,它是透明的。 对于绘制按钮,我使用的功能GdiDrawStream;这是私人活动。我将解释这个函数如何工作以及它有什么类型的参数。该函数中使用的主要内容是GdiDrawStreamStruct结构。我认为这个函数有参数像:GetObject,处理设备对象,结构的大小GdiDrawStreamStruct和指针的结构。 使用的代码 ThemeButton类有一个公共函数InitControl。这个函数有Macintosh, Vista, XP和Luna Longhorn样式的默认参数。 函数的参数如下: 位图资源标识符。 位图列表方向:垂直或水平。 位图列表中每个图像的像素宽度。 位图列表中每个图像的像素高度。 位图的透明颜色。 按钮文本的字体名称。 按钮绘制风格:Mac, Vista, XP或Luna Longhorn风格。隐藏,收缩,复制Code

    BOOL CWowButtonsDlg::OnInitDialog()
    {
         CDialog::OnInitDialog();
         // Set the icon for this dialog.
         // The framework does this automatically
         //  when the application's main window is not a dialog
         SetIcon(m_hIcon, TRUE);  // Set big icon
         SetIcon(m_hIcon, FALSE); // Set small icon
    
         m_vista_but1.InitControl(IDB_VISTA_PUSHBUTTON_BMP,TRUE,21,23,RGB(0,0,0),
             _T("Tahoma"),ThemeButton::VISTA_STYLE);
         m_vista_but2.InitControl(IDB_VISTA_PUSHBUTTON_BMP,TRUE,21,23,RGB(0,0,0),
             _T("Tahoma"),ThemeButton::VISTA_STYLE);
         m_vista_but3.InitControl(IDB_VISTA_PUSHBUTTON_BMP,TRUE,21,23,RGB(0,0,0),
             _T("Tahoma"),ThemeButton::VISTA_STYLE);
         m_vista_but4.InitControl(IDB_VISTA_PUSHBUTTON_BMP,TRUE,21,23,RGB(0,0,0),
             _T("Tahoma"),ThemeButton::VISTA_STYLE);
         m_mac_but1  .InitControl(IDB_MAC_PUSHBUTTON_BMP,  
             TRUE,34,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::MAC_STYLE);
         m_mac_but2  .InitControl(IDB_MAC_PUSHBUTTON_BMP,  
             TRUE,34,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::MAC_STYLE);
         m_mac_but3  .InitControl(IDB_MAC_PUSHBUTTON_BMP,  
             TRUE,34,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::MAC_STYLE);
         m_mac_but4  .InitControl(IDB_MAC_PUSHBUTTON_BMP,  
             
             TRUE,34,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::MAC_STYLE);
         m_xp_but1   .InitControl(IDB_XP_PUSHBUTTON_BMP,    
             TRUE,20,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::XP_STYLE);
         m_xp_but2   .InitControl(IDB_XP_PUSHBUTTON_BMP,   
             TRUE,20,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::XP_STYLE);
         m_xp_but3   .InitControl(IDB_XP_PUSHBUTTON_BMP,   
             TRUE,20,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::XP_STYLE);
         m_xp_but4   .InitControl(IDB_XP_PUSHBUTTON_BMP,    
             TRUE,20,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::XP_STYLE);
         m_luna_but1 .InitControl(IDB_LONGHORN_PUSHBUTTON, 
             TRUE,28,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::LUNA_LONGHORN);
         m_luna_but2 .InitControl(IDB_LONGHORN_PUSHBUTTON, 
             TRUE,28,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::LUNA_LONGHORN);
         m_luna_but3 .InitControl(IDB_LONGHORN_PUSHBUTTON, 
             TRUE,28,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::LUNA_LONGHORN);
         m_luna_but4 .InitControl(IDB_LONGHORN_PUSHBUTTON, 
             TRUE,28,23,RGB(0,0,0),_T("Tahoma"),ThemeButton::LUNA_LONGHORN);
    
         return TRUE;  // return TRUE  unless you set the focus to a control
    }

    更新(3.7.2006) 现在,使用LR_CREATEDIBSECTION标志调用函数LoadImage。 更新(7.3.2007) 我将类的名称改为ThameButton。创建新的头文件GdiDrawStream.h用于绘制函数,标志&结构声明。我添加XP和Luna Longhorn风格的按钮。 本文转载于:http://www.diyabc.com/frontweb/news441.html

  • 相关阅读:
    performance benchmark : memcached vs Kyoto Tycoon
    Adhesive框架系列文章应用程序信息中心模块实现
    神奇的Redis
    使用代码测试ASP.NET MVC2执行流程
    linq2sql代码大全
    7/17博客园活动浅谈网站架构中缓存的应用所有资料
    浅谈.NET下的多线程和并行计算(十四)并行计算前言
    公司.NET 3.5培训资料分享
    mongodb分片集群(sharding with replica set)配置
    mongodb有关的研究
  • 原文地址:https://www.cnblogs.com/Dincat/p/13450088.html
Copyright © 2011-2022 走看看