在vc 中 如何得到 字体 font 的宽度

在vc 中 如何得到 字体 font 的宽度,第1张

因为很多字体都是不等宽的, TEXTMETRIC 中有

LONG tmAveCharWidth; 平均宽度

LONG tmMaxCharWidth; 最大宽度

如果想知道一个字符的宽度,可以用GetTextExtent。

这样做就OK了,字体和大小可以成功改变,不过我现在还不知道如何改变字体的颜色。努力寻找答案中……

void

CEsayChatDlg::OnButtonFont()

//改变字体

的响应函数

{

//

TODO:

Add

your

control

notification

handler

code

here

//获得控件的当前字体

LOGFONT

lf;

GetDlgItem(IDC_EDIT_RECORD)->GetFont()->GetLogFont(&lf);

//使用按钮的当前字体初始化字体对话框

CFontDialog

dlgFontDlg(&lf);

//显示字体选择对话框

if

(dlgFontDlgDoModal()

==

IDOK)

{

//如果用户在字体选择对话框中单击了“确定”按钮

//则将按钮ID_BUTTON_DEMODE的标题文本字体设置为所选定的字体

static

CFont

font;

dlgFontDlgGetCurrentFont(&lf);

fontDeleteObject();

fontCreateFontIndirect(&lf);

GetDlgItem(IDC_EDIT_RECORD)->SetFont(&font);

}

}

CString str;

int count =  123;

strFormat(_T("%d"), count);

m_staticSetWindowText(str)。

发展历程:

MicrosoftVisual C++最初叫做Microsoft C/C++。

Microsoft Visual C++ 10

集成了MFC20,是Visual C++第一代版本,1992年推出,可同时支援16位处理器与32位处理器版,是Microsoft C/C++ 70的更新版本。

Microsoft Visual C++ 15

集成了MFC25,增加了“目标文件链接嵌入 (OLE)20 和支持MFC的开放式数据库链接(ODBC)。这个版本只有16位的,也是第一个以CD-ROM为软件载体的版本。这个版本也没有所谓“标准版”。它是最后一个支持16位软件编程的软件,也是第一个支持基于x86机器的32位编程软件。

Microsoft Visual C++ 20

集成了MFC 30,第一个只发行32位的版本。这个版本提前发行了,几乎成了一个“丢失的版本”。这是因为那个时候Windows 95(开发代码为"Chicago")还没有发行,而Windows NT又只占有很小的市场份额。该版本用户可以通过微软公司的订阅服务(Microsoft Subscription Service)升级至21和22版本。微软公司在这个版本中集成并升级了Visual C++15,作为20版本(Visual C++ 15升级后版本号:151)以及21版本(Visual C++15升级后版本号:152)的一部分。Visual C++ 2x附带了16位和32位版本的CDK,同时支持Win32s的开发。Visual C++ 22及其后续版本不再升级Visual C++ 15(尽管它一直被集成至Visual C++ 4x)。尽管出生的比Windows 95早,这个版本的发行日期还是非常接近Windows 95,可是当Windows 95发行时, Visual C++ 40也已经发行了。因此很多程序开发者直接从1x过渡到40,把2x跳过去了。

Microsoft Visual C++ 40

集成了MFC40,这个版本是专门为Windows 95以及Windows NT设计的。用户可以通过微软公司的订阅服务(MicrosoftSubscription Service)升级至41和42版本(此版本不再支持Win32s开发)。

Microsoft Visual C++ 50

集成了MFC 421,是42版以来比较大的一次升级。

Microsoft Visual C++ 60

集成了MFC60,于1998发行,又称vc98。发行至今一直被广泛地用于大大小小的项目开发。但是,这个版本在WindowsXP下运行会出现问题,尤其是在调试模式的情况下(例如:静态变量的值并不会显示)。 这个调试问题可以通过打一个叫“Visual C++ 60Processor Pack”的补丁来解决。奇怪的是,这个网页强调用户也必须运行Windows 98、Windows NT40、或Windows 2000。这个C++版本对win7的兼容性非常差,有大大小小的兼容性问题。微软不推荐安装在windows7上。

Microsoft Visual C++ NET 2002

也即Visual C++ 70,于2002年发行,集成了MFC70,支持链接时代码生成和调试执行时检查。这个版本还集成了Managed Extension for C++,以及一个全新的用户界面(与Visual Basic和Visual C#共用)。从这个版本开始,所有的API形式上都被定义成位数无关的,并且开始支持原生64位软件的开发。

MicrosoftVisual C++ NET 2003

也即 Visual C++ 71,集成了MFC 71,于2003年发行,是对Visual C++ NET 2002的一次重大升级。

MicrosofteMbedded Visual C++

用于Windows CE *** 作系统。Visual C++作为一个独立的开发环境被Microsoft Visual Studio 2005所替代。

MicrosoftVisual C++ 2005

也即Visual C++ 80,集成了MFC 80,于2005年11月发布。这个版本引进了对C++/CLI语言和OpenMP的支持。

Microsoft Visual C++ 2008

也即Visual C++ 90,于2007年11月发布。这个版本支持NET 35。从这个版本开始,微软放弃了对编写Win9x架构系统上的软件的支持。此版本更加稳定。VC++2008是目前最稳定版本。

Microsoft Visual C++ 2010

Visual C++ 100,2009年发布,新添加了对C++11标准引入的几个新特性的支持。

MicrosoftVisual C++ 2012

Visual C++ 110, 2012年5月26日发布,支持net45 beta,并实现go live。只能安装于win7或者更高的windows *** 作系统(如最新发布的windows8等)。可以开发windows8专用的Modern UI风格的应用程序。相比2010又添加了少量对C++11标准引入的新特性的支持。

MicrosoftVisual C++ 2013

Visual C++ 120, 2013年8月发布,可以看作是Visual C++ 110的升级版。这个版本相对于2012添加了大量对C++11标准的支持。可以开发windows81专用的Modern UI风格的应用程序(但却不支持windows8,支持windows81)。开发环境亦内置了源代码染色的功能。

最新稳定版本(亦适用于2013)

Visual C++ 被整合在Visual Studio之中,但仍可单独安装使用。

目前有四种最新版本:

Visual Studio 2012 Professional是供开发人员执行基本开发任务的重要工具。可简化在各种平台(包括 SharePoint 和云)上创建、调试和开发应用程序的过程。Visual Studio 2012 Professional 自带对测试驱动开发的集成支持以及调试工具,以帮助确保提供高质量的解决方案。

Visual Studio 2012 Premium是一个功能全面的工具集,可为个人或团队简化应用程序开发过程,支持交付可扩展的高质量应用程序。无论是编写代码、构建数据库、测试还是调试,您都可以使用能够按照你的方式工作的强大工具来提高工作效率。

Visual Studio 2012 Ultimate是一个综合性的应用程序生命周期管理工具套件,可供团队用于确保从设计到部署的整个过程都能取得较高质量的结果。无论是创建新的解决方案,还是改进现有的应用程序,Visual Studio 2012 Ultimate 都能让您针对不断增加的平台和技术(包括云和并行计算)将梦想变成现实。

Visual Studio Test Professional 2012是质量保障团队的专用工具集,可简化测试规划和手动测试执行过程。Test Professional 与开发人员的 Visual Studio 软件配合运行,可在整个应用程序开发生命周期内实现开发人员和测试人员之间的高效协作。

以前的版本:

Visual C++ 2008 Express、Visual C++ 2008 Standard 标准版、Visual C++ 2008 Professional 专业版、Visual C++ 2008 Team System 团队系统版,其中 Microsoft Visual C++ 2008 Express 可从微软网站免费下载使用,并且不限制商业使用。

在Excel中选中要做热图的全部数据 (不要选择行列标题!),然后执行以下 *** 作:逗条件格式地--逗色阶地--逗其他规则地

默认是逗双色刻度地,可改成逗三色刻度地

然后设置最小值、中间值、最大值的类型和颜色

建议将类型都改为逗数字地,好处是可以自定义最小值、中间值、最大值的数值大小。然后用windows自带的截图工具(截屏也可以)截取逗预览地后面的色条。

注意:你的数据应该在设置的最小值和最大值范围之内。例图中的数据范围是03~984,因此这里设置最小值0,最大值10,中间值采用0和10的中位数5

将截取的色条粘贴到Excel中,效果如图。

如果觉得色条太长,可以作如下调整:

选中色条,提高Excel的缩放比例,直到能看到色条短边上的小方块,鼠标移动到小方块上,调节色条宽度

在色条上方的对应单元格内输入主要刻度值。

为了美观,可将Excel单元格的填充色都改为白色,并适当调节行高、列高。

到这里,热图基本上就做好了。

觉得数字碍眼看Excel似乎没有透明字体,那就试试Adobe Illustrator吧

复制Excel中的热图,在Illustrator中新建一个空白文档,粘贴。如果粘贴的内容超过了空白文档的边界,请重新新建一个大一点的文档吧。

然后Ctrl+A全选,右键--取消编组

保持全选状态,右键--释放剪切蒙板,然后就可以选择单个的文字了。

删掉热图中所有的数字,然后保存为pdf等格式的文档,用Acrobat打开pdf可另存为格式,大功告成!

1 要获取CPU编码可以使用dos命令wmic cpu get ProcessorId。

2 要在C语言中执行dos命令,一般使用system("wmic cpu get ProcessorId");

3 由于获取到的cpu编码是打印在命令行中的,要获取结果用system就无法实现了。这时可以用windows提供的_popen函数。该函数的功能为,执行一段dos命令,并将程序运行结果(原本的dos打印)保存在内存中,可以通过文件方式读取。

于是,代码如下:

#include <stdioh>#include <stdlibh>int main( void ){ char psBuffer[128]; FILE pPipe; if( (pPipe = _popen( "wmic cpu get ProcessorId", "rt" )) == NULL ) exit( 1 );//执行失败,退出程序。 while(fgets(psBuffer, 128, pPipe))//读取结果,并输出。 { printf(psBuffer); } / 关闭执行标识。本质上是释放这段内存。 / _pclose( pPipe ); return 0;}

需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。

例子:

1、改静态文体的ID,如:IDC_STATIC1

2、添加一个Edit控件,建立一个关联的控件m_editControl。

3、在OnInitDialog中添加如下代码:

CFont  f;   

f = new CFont;   

f->CreateFont(   

        16,                         // nHeight    

         0,                         // nWidth    

         0,                         // nEscapement    

         0,                         // nOrientation    

         FW_BOLD,                   // nWeight    

         TRUE,                      // bItalic    

         FALSE,                     // bUnderline    

         0,                         // cStrikeOut    

         ANSI_CHARSET,              // nCharSet    

         OUT_DEFAULT_PRECIS,        // nOutPrecision    

         CLIP_DEFAULT_PRECIS,       // nClipPrecision    

         DEFAULT_QUALITY,           // nQuality    

         DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily    

         _T("Arial")                // lpszFac   

             );                 

m_editControlSetFont(f);   

m_editControlSetWindowText("xxxxxx");   

GetDlgItem_r(IDC_STATIC1)->SetFont(f);

以上就是关于在vc 中 如何得到 字体 font 的宽度全部的内容,包括:在vc 中 如何得到 字体 font 的宽度、VC中,怎样通过调用字体通用对话框来改变文本框中的文字的字体等信息、VC++怎么获取Static Text上的文本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9826562.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存