crollupctrl-控制CRollupCtrl类创建的标题栏

问题描述

控制CRollupCtrl类创建的标题栏

想通过OnSize变化来动态改变CRollupCtrl的标题:代码如下,麻烦大家帮我看看怎么不对了。

CString str1 = "ZERO DATA(mv)",str2 = "10 KHz", str3 = "30 KHz", str4 = "50 KHz",
    str5 = "70 KHz", str6 = "90 KHz", str7 = "110 KHz", str8 = "130 KHz", str9 = "150 KHz";
CString str = "";
CRect m_rollRect;
float m_rollTilte = 0;
float m_Width = 0;
m_wndRollupCtrl.GetClientRect(m_rollRect);
m_rollTilte = m_rollRect.Width();
m_rollTilte = m_rollTilte/9.0f;
CClientDC dc(this);
CSize size1 = dc.GetTextExtent(str1.GetBuffer(str1.GetLength()), strlen(str1.GetBuffer(str1.GetLength())));

// GetTextExtentPoint32(dc,str1.GetBuffer(str1.GetLength()),strlen(str1.GetBuffer(str1.GetLength())),&size1);
m_Width = size1.cx;

if ((m_rollTilte - m_Width) > 0)
{
    CString strNULL = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str1;
    str += strNULL;
}
else
{
    CString strNULL = "";
    str1 = "ZER";
    size1 = dc.GetTextExtent(str1.GetBuffer(str1.GetLength()), strlen(str1.GetBuffer(str1.GetLength())));
    m_Width = size1.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str1;
    str += strNULL;
}

CSize size2 = dc.GetTextExtent(str2.GetBuffer(str2.GetLength()), strlen(str2.GetBuffer(str2.GetLength())));
m_Width = size2.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str2;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str2 = "10";
    size2 = dc.GetTextExtent(str2.GetBuffer(str2.GetLength()), strlen(str2.GetBuffer(str2.GetLength())));
    m_Width = size2.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str2;
    str += strNULL;
}

CSize size3 = dc.GetTextExtent(str3.GetBuffer(str3.GetLength()), strlen(str3.GetBuffer(str3.GetLength())));
m_Width = size3.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str3;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str3 = "30";
    size3 = dc.GetTextExtent(str3.GetBuffer(str3.GetLength()), strlen(str3.GetBuffer(str3.GetLength())));
    m_Width = size3.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str3;
    str += strNULL;
}
CSize size4 = dc.GetTextExtent(str4.GetBuffer(str4.GetLength()), strlen(str4.GetBuffer(str4.GetLength())));
m_Width = size4.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str4;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str4 = "50";
    size4 = dc.GetTextExtent(str4.GetBuffer(str4.GetLength()), strlen(str4.GetBuffer(str4.GetLength())));
    m_Width = size4.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str4;
    str += strNULL;
}

CSize size5 = dc.GetTextExtent(str5.GetBuffer(str5.GetLength()), strlen(str5.GetBuffer(str5.GetLength())));
m_Width = size5.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str5;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str5 = "70";
    size5 = dc.GetTextExtent(str5.GetBuffer(str5.GetLength()), strlen(str5.GetBuffer(str5.GetLength())));
    m_Width = size5.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str5;
    str += strNULL;
}

CSize size6 = dc.GetTextExtent(str6.GetBuffer(str6.GetLength()), strlen(str6.GetBuffer(str6.GetLength())));
m_Width = size6.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str6;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str6 = "90";
    size6 = dc.GetTextExtent(str6.GetBuffer(str6.GetLength()), strlen(str6.GetBuffer(str6.GetLength())));
    m_Width = size6.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str6;
    str += strNULL;
}

CSize size7 = dc.GetTextExtent(str7.GetBuffer(str7.GetLength()), strlen(str7.GetBuffer(str7.GetLength())));
m_Width = size7.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str7;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str7 = "110";
    size7 = dc.GetTextExtent(str7.GetBuffer(str7.GetLength()), strlen(str7.GetBuffer(str7.GetLength())));
    m_Width = size7.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str7;
    str += strNULL;
}

CSize size8 = dc.GetTextExtent(str8.GetBuffer(str8.GetLength()), strlen(str8.GetBuffer(str8.GetLength())));
m_Width = size8.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str8;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str8 = "130";
    size8 = dc.GetTextExtent(str8.GetBuffer(str8.GetLength()), strlen(str8.GetBuffer(str8.GetLength())));
    m_Width = size8.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str8;
    str += strNULL;
}

CSize size9 = dc.GetTextExtent(str9.GetBuffer(str9.GetLength()), strlen(str9.GetBuffer(str9.GetLength())));
m_Width = size9.cx;
if ((m_rollTilte - m_Width) > 0)
{
    CString strNUll = "";
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNUll += " ";
    }
    str += str9;
    str += strNUll;
}
else
{
    CString strNULL = "";
    str9 = "150";
    size9 = dc.GetTextExtent(str9.GetBuffer(str9.GetLength()), strlen(str9.GetBuffer(str9.GetLength())));
    m_Width = size9.cx;
    int a = (m_rollTilte - m_Width)/4;
    for (int i = 0; i < a; i ++)
    {
        strNULL += " ";
    }
    str += str9;
    str += strNULL;
}

CSize size11 = dc.GetTextExtent(str.GetBuffer(str.GetLength()), strlen(str.GetBuffer(str.GetLength())));
/*  CSize size1 ;*/
m_Width = size11.cx;

m_wndRollupCtrl.SetPageCaption(0,str);
时间: 2024-10-26 09:26:13

crollupctrl-控制CRollupCtrl类创建的标题栏的相关文章

在Eclipse里使用Grails类创建工具

我们知道,在Grails项目中使用Grails类创建工具如"grails create- domain-class"等,能帮我们创建domain.service和controller等类及它们的 测试类及其他.因此,我们在Grails项目中常常是使用这些工具帮我们创建各种 类,而不是直接动手去创建它们.前面,我们已经动手将Grails项目集成到了 Eclipse里来,那么,在Eclipse开发平台上,我们又该如何创建这些对象呢? 在Grails官方网站上,对此有一段说明,详细的描述了如

mfc cmfctabctrl-用CMFCTabCtrl类创建一个Tab控件,然后在该控件上添加一个对话框

问题描述 用CMFCTabCtrl类创建一个Tab控件,然后在该控件上添加一个对话框 用CMFCTabCtrl类创建一个Tab控件,然后在该控件上添加一个对话框,但是添加之后,会出现setfouce的问题,也有__debugbreak()问题.. 有没有大神给个代码看看,我怎么改都不行

hibernate 根据持久化类 创建数据库表的时候出现的错误如下,请大神帮忙解决?

问题描述 hibernate 根据持久化类 创建数据库表的时候出现的错误如下,请大神帮忙解决? 十二月 09, 2015 1:49:52 下午 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata 信息: table not found: DIC_TAB 十二月 09, 2015 1:49:52 下午 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata 信息:

file.createnewfile()-File类创建文件的疑惑

问题描述 File类创建文件的疑惑 由file.createNewFile();创建的.xls文件,作为参数执行 Workbook wb = Workbook.getWorkbook(file) 时wb的值为null,求解 解决方案 file.createNewFile(); 创建新文件,不是新的xls文件,即便什么数据也没有,一个空的xls文件也不是0字节的空白文件,而是一个具有excel格式的文件.

《Java程序员面试秘笈》—— 1.13 使用工厂类创建线程

1.13 使用工厂类创建线程 工厂模式是面向对象编程中最常使用的模式之一.它是一个创建者模式,使用一个类为其他的一个或者多个类创建对象.当我们要为这些类创建对象时,不需再使用new构造器,而使用工厂类. 使用工厂类,可以将对象的创建集中化,这样做有以下的好处: ◆ 更容易修改类,或者改变创建对象的方式: ◆ 更容易为有限资源限制创建对象的数目.例如,我们可以限制一个类型的对象不多于n个. ◆ 更容易为创建的对象生成统计数据. Java提供了ThreadFactory接口,这个接口实现了线程对象工

控制 PHP 类的实例化次数!

控制 php 类的实例化次数!为了保证服务器资源的有效利用,而且一个类比方说模板啊,数据库什么的,在一个页面内只需要实例化一次!也就是在内存中只运行一个实例!那么为了避免重复实例化,那么控制 php 类的实例化次数,是很有必要的!方法其实很简单:就是给类一个外部接口,私有化(private)构造函数,抛弃可以在类外部使用new实例化该类的方法!以下,就是我给出的一个例子,相信大家一看就明白了!( PHP5 以上版本! ) <?php class test{    const name = ''t

支持数据项查找功能的树控制(CTreeCtrl)类

代码运行效果图如下: 一.树控制(CTree Control) 树控制用于显示具有一定层次结构的数据项.很多应用程序都使用该控件,例如资源管理器中的磁盘目录等. 树控制中有根数据项(root item),根数据项下包含各个子数据项(child item).根数据项是所有子数据项的父亲,而这些子数据项是根数据项的孩子.所有子数据项互为兄妹(sibling)关系.每个数据项包括数据项名称(文本字符串)和用于表示该数据项的图像,每个数据项下还可以包含子项,整个结构就象一棵树. 二.使用树控制 在MFC

as BitmapData类创建杂点效果

创建一个新的 Flash 文档,并将其保存为 noise.fla.     将下面的 ActionScript 添加到时间轴的第 1 帧: import flash.display.BitmapData;  代码如下 复制代码 this.createTextField("status_txt", 90, 0, 0, 100, 20); status_txt.selectable = false; status_txt.background = 0xFFFFFF; status_txt.

crecordset类创建-vs2010mfc中使用odbc连接mysql问题

问题描述 vs2010mfc中使用odbc连接mysql问题 第一个问题,连接mysql数据库一般有几种方法?老师给的代码,使用MYSQL mydb:创建了数据库,又让使用odbc连接,却没给出代码与具体方法,都被弄晕了.第二个问题,odbc是怎么使用的,为什么我创建系统dsn后,为什么在vs2010中想添加CRecordset类的继承类时,却无法显示系统dsn?而只显示用户dsn,且创建用户dsn并测试连接成功后,在程序中也只是显示却无法打开自己创建的用户dsn.我已经严重怀疑我的智商,并快要