如何用combo box控件设置文本中的字体的大小

wjn161 2008-05-25 02:33:47
如题,本人希望通过combo box控件修改edit box中的字符的大小,类似于QQ聊天窗口中字体大小的修改,但字符是已经给出的,不是动态输入。
本人新手,只知道字体的初始化是通过fontname.CreateFont( int nHeight, int nWidth...)....
本人希望然后combo box修改字体的高度和宽度,以达到修改大小的目的。问题在于,combo box中的值如何才能改变这个...以及combo box控件中的一些函数的使用问题。如是否该AddString()等等
小弟学VC刚1个月,也许思路完全错误,请各位大虾帮忙看下...指点迷津~
...全文
908 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Torch009 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
你是要改变Edit控件的字体还是ComboBox中的字体?
[/Quote]
HuWenjin 2008-05-25
  • 打赏
  • 举报
回复
下面的方法是设置 RichEdit 控件的

// 设置接下来输入的字体为指定的字体色和大小
void CJinRichEdit::SetToDefaultWordCharFont(COLORREF crText, int nFontSize)
{
ASSERT_VALID(this);
ASSERT(m_hWnd != NULL);
// 初始化字体
CHARFORMAT cfDefault;
cfDefault.cbSize = sizeof(CHARFORMAT);

cfDefault.dwMask = 0xFFFFFFFF ;
cfDefault.dwEffects = 0;
cfDefault.bCharSet = GB2312_CHARSET;
strcpy(cfDefault.szFaceName, _T("宋体"));
cfDefault.crTextColor = crText;
cfDefault.yHeight = nFontSize * 20;
cfDefault.yOffset = 0;
cfDefault.bPitchAndFamily = DEFAULT_PITCH;

SetWordCharFormat(cfDefault);

ASSERT_VALID(this);
}
// 设置当前选中为指定的字体
void CJinRichEdit::SetSelectionFont(COLORREF crText, int nFontSize, LPCTSTR lpszFontName)
{
ASSERT_VALID(this);
ASSERT(m_hWnd != NULL);
// 初始化字体
CHARFORMAT cfDefault;
cfDefault.cbSize = sizeof(CHARFORMAT);

cfDefault.dwMask = 0xFFFFFFFF ;
cfDefault.dwEffects = 0;
cfDefault.bCharSet = GB2312_CHARSET;
strcpy(cfDefault.szFaceName, lpszFontName);
cfDefault.crTextColor = crText;
cfDefault.yHeight = nFontSize * 20;
cfDefault.yOffset = 0;
cfDefault.bPitchAndFamily = DEFAULT_PITCH;

// set the default character format -- the FALSE makes it the default
SetSelectionCharFormat(cfDefault);

ASSERT_VALID(this);
}
HuWenjin 2008-05-25
  • 打赏
  • 举报
回复
ComboBox.SetFont(...) 函数

生成一个你需要的FONT,调用其子函数SetFont


如果想在生成 ComboBox 对象生任一时间修改,可能还需要发出消息让ComboBox重新计算大小

类似下面的程序,调用一下

// 名称: CJinListCtrl::ForceToMeasureItem
// 说明: 发送一条位置改变消息,重新计算高度
// 返回: void
void CJinListCtrl::ForceToMeasureItem()
{
if( !GetSafeHwnd() )
return;

CRect rc;
GetWindowRect(&rc);

WINDOWPOS wp;
wp.hwnd = this->m_hWnd;
wp.cx = rc.Width() ;
wp.cy = rc.Height() ;
wp.flags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOZORDER;

SendMessage(WM_WINDOWPOSCHANGED, 0, reinterpret_cast<LPARAM> (&wp));

}

cnzdgs 2008-05-25
  • 打赏
  • 举报
回复
你是要改变Edit控件的字体还是ComboBox中的字体?
wjn161 2008-05-25
  • 打赏
  • 举报
回复
结了~
iyranly 2008-05-25
  • 打赏
  • 举报
回复
使用CRichEditCtrl::SetSelectionCharFormat

把你的Edit换成CRichEditCtrl,然后在comboBox的SeleChenged时获取comboBox的文本,将这个文本转换为整数,设置CRichEditCtrl的字体大小:使用CRichEditCtrl::SetSelectionCharFormat

cnzdgs 2008-05-25
  • 打赏
  • 举报
回复
响应ComboBox发出的CBN_SELCHANGE通知,用GetFont获取Edit控件的当前字体,再GetLogFont,根据ComboBox的当前选项设置lfHeight、lfWidth,再CreateFontIndirect创建一个新字体,用SetFont改变Edit控件的字体。
wjn161 2008-05-25
  • 打赏
  • 举报
回复
3楼的大哥的方法我大概明白了,您是通过在ComboBox中的对象直接设置字体,即通过下拉选择直接改变字体,字型,字号。每一个选择都生成一个新的字体对象。是吧?
不好意思,我想要得只用改变字号就OK了。字体和字型,我通过单选和复选按钮改变。我做的只是一个简单的对话框程序--简易文本编辑器~
wjn161 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iyranly 的回复:]
使用CRichEditCtrl::SetSelectionCharFormat

把你的Edit换成CRichEditCtrl,然后在comboBox的SeleChenged时获取comboBox的文本,将这个文本转换为整数,设置CRichEditCtrl的字体大小:使用CRichEditCtrl::SetSelectionCharFormat
[/Quote]


我大概了解一点了。我再尝试一下~
wjn161 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cnzdgs 的回复:]
你是要改变Edit控件的字体还是ComboBox中的字体?
[/Quote]

还有5楼的大哥。

我的意思是想通过选择ComboBox中的数字,改变EDIT文本中的字符大小。不是改变ComboBox中的字体。
最好的例子就是QQ聊天对话框中设置字体的那种。当然他那个对类似RichEdit的,我要的只是静态的。
ListView 排序 Stringgrid内使用回车键代替Tab键 TListBox内显示分栏 TListBox每一行显示交互的颜色 TMemo内光标位置根据鼠标移动 TMemo自动卷动 TRichEdit卷到特定位置 TRxRichEdit内插入图像 TStringGrid插入、删除一行 TStringGrid保存和装载 TTreeview控件显示粗体节点 TWebBrowser调用“查找”对话框 为Listview栏添加双击事件 为工具栏的TToolButton设置新的索引 仅通过Classname创建和管理任意窗体 从RichEdit取Rtf格式 从TListBox拖放项目到TRichEdit 从一个TRichedit复制格式Rtf文本到其它 使用CustomSort方法排序TListView 使用DBGrid字段队列同步列标题队列 使用Interfaces和TInterfaceList 使用TRichEdit存储大于64K数据 使用代码移动StringGrid的行和列 使用圆形角显示控件 使用类名显示窗体 保存 装载TCheckListbox值 保存和装载TListView 保存和装载TTreeView 允许TDBGrid栏调整大小但防止移动 克隆控件 克隆窗体 列出控件的所有属性和事件 创建可编辑ListBox 删除Listbox的所有选定项目 删除stringlist重复项目 删除TStringGrid的列 动画窗体 取ComboBox List句柄 取TListview内所有选定项目 取TShellListView选定文件的路径 取列举值的名称 在combobox实现autocomplete 在DBGrid使用回车键改变到下一个段 在listbox内列出所有目录、文件和驱动器 在Listbox内显示水平滚动条 在memo实现UNDO 在RichEdit内搜索文本并选择它 在StringGrid内使用Combobox作为编辑器 在StringGrid单元画不同颜色 在TComboBox显示栏 在TComboBox内绘制位图 在TDateTimePicker内显示星期几 在TFileListBox内显示多列 在TListBox创建彩色项目 在TListBox内拖拽 在TListbox内绘制位图 在TListview内执行二进制搜索 在TListView内拖拽多个项目 在TListView列创建进度条 在TMemo内查看和编辑MS-DOS文本 在TPageControl拖拽Tabs 在TPrintDialog上放置定制控件 在TRichEdit内使用上标和下标 在TRichEdit内使用超链接 在TRichEdit内文本使用不同的下划线样式 在TRichedit内设置段落行距 在TStringGrid内删除一行 在TStringGrid实现OnColumnClick事件 在自己的控件显示信息 复制Listbox项目到剪贴板 失效TTreeview的tooltips 定制TDateTimePicker的格式 居控件 屏蔽在EditBox内按回车键的都都声 强制在TEdit内输入 排序StringGrid 搜索和替换RichEdit文本 搜索和选定TListBox的项目 改变TDBGrid的DefaultRowHeight 改变TRichEdit内选定文本的背景颜色 改变TStringGrid内选定单元的颜色 改变标准对话框 改变状态栏字体样式 改变窗体上所有控件的属性 改变进度条颜色 根据StringGrid列内容自动调整大小 根据列排序TStringGrid 检查Stringgrid指定单元示范选定 检查TMemo能否取消操作 检查TreeView是否完全展开或折叠 检查TStringGrid是否有滚动条 添加接口对象到list 清空StringGrid的所有单元 移动listbox项目 移动TListView项目 移动TRichEdit内光标到指定位置 聚焦TDBGrid某些单元 自动打开TDateTimePicker 自定义Memo边界 获取TRichEdit鼠标指针下面的字 访问TRadioGroup的控件 调整TComboBox下拉列表的宽度 转换Editbox的首字符为大写 转换TEdit每个词的首字母为大写 输出TStringGrid到TListView 运行时创建TButtons队列 运行时创建控件 运行时创建菜单项 运行时替换控件 返回TTreeView内字符串路径 防止在TEdit内剪贴、复制、粘贴 防止用户调整TListView栏大小 限制TEdit的输入 隐藏TListView滚动条 隐藏最小化MDI子窗口 颜色Combo Box 验证TEdit输入的是数字
VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/MFC 应用程序框架 VS2010/MFC 编程入门之二(利用MFC 向导生成单文档应用程序框架) VS2010/MFC 编程入门之三(VS2010 应用程序工程文件的组成结构) VS2010/MFC 编程入门之四(MFC 应用程序框架分析) VS2010/MFC 编程入门之五(MFC 消息映射机制概述) 第三部分:对话框 VS2010/MFC 编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC 编程入门之七(对话框:为对话框添加控件) VS2010/MFC 编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC 编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC 编程入门之十(对话框:设置对话框控件的Tab 顺序) VS2010/MFC 编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC 编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC 编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC 编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC 编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC 编程入门之十六(对话框:消息对话框) VS2010/MFC 编程入门之十七(对话框:文件对话框) VS2010/MFC 编程入门之十八(对话框:字体对话框) VS2010/MFC 编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC 编程入门之二十(常用控件:静态文本框) VS2010/MFC 编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC 编程入门之二十二(常用控件:按钮控件Button、Radio Button 和Check Box) VS2010/MFC 编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC 编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC 编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC 编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC 编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC 编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC 编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC 编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC 编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC 编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC 编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC 编程入门之三十四(菜单:VS2010 菜单资源详解) VS2010/MFC 编程入门之三十五(菜单:菜单及CMenu 类的使用) VS2010/MFC 编程入门之三十六(工具栏:工具栏资源及CToolBar 类) VS2010/MFC 编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC 编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC 编程入门之三十九(文档、视图和框架:概述) VS2010/MFC 编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC 编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC 常用类 VS2010/MFC 编程入门之四十二(MFC 常用类:CString 类) VS2010/MFC 编程入门之四十三(MFC 常用类:CTime 类和CTimeSpan 类) VS2010/MFC 编程入门之四十四(MFC 常用类:定时器Timer) VS2010/MFC 编程入门之四十五(MFC 常用类:CFile 文件操作类) VS2010/MFC 编程入门之四十六(MFC 常用类:MFC 异常处理) 第八部分:字体文本输出 VS2010/MFC 编程入门之四十七(字体文本输出:CFont 字体类) VS2010/MFC 编程入门之四十八(字体文本输出:文本输出) 第九部分:图形图像 VS2010/MFC 编程入门之四十九(图形图像:CDC 类及其屏幕绘图函数) VS2010/MFC 编程入门之五十(图形图像:GDI 对象之画笔CPen) VS2010/MFC 编程入门之五十一(图形图像:GDI 对象之画刷CBrush) 第十部分:Ribbon 界面开发 VS2010/MFC 编程入门之五十二(Ribbon 界面开发:创建Ribbon 样式的应用程序框架) VS2010/MFC 编程入门之五十三(Ribbon 界面开发:为Ribbon Bar 添加控件) VS2010/MFC 编程入门之五十四(Ribbon 界面开发:使用更多控件并为控件添加消息处理函数)
一、VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架) VS2010/MFC编程入门之三(VS2010应用程序工程文件的组成结构) VS2010/MFC编程入门之四(MFC应用程序框架分析) VS2010/MFC编程入门之五(MFC消息映射机制概述) 第三部分:对话框 VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC编程入门之七(对话框:为对话框添加控件) VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序) VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC编程入门之十六(对话框:消息对话框) VS2010/MFC编程入门之十七(对话框:文件对话框) VS2010/MFC编程入门之十八(对话框:字体对话框) VS2010/MFC编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC编程入门之二十(常用控件:静态文本框) VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box) VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解) VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用) VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类) VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC编程入门之三十九(文档、视图和框架:概述) VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC常用类 VS2010/MFC编程入门之四十二(MFC常用类:CString类) VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类) VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer) VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理) 第八部分:字体文本输出 VS2010/MFC编程入门之四十七(字体文本输出:CFont字体类) VS2010/MFC编程入门之四十八(字体文本输出:文本输出) 第九部分:图形图像 VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数) VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen) VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush) 第十部分:Ribbon界面开发 VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架) VS2010/MFC编程入门之五十三(Ribbon界面开发:为Ribbon Bar添加控件) VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数) 本文来源于鸡啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/257.html
VS2010-MFC编程入门之前言-软件开发-鸡啄米 VS2010-MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 VS2010-MFC编程入门之三(VS2010应用程序工程文件的组成结构)鸡啄米 VS2010-MFC编程入门之四(MFC应用程序框架分析)-软件开发-鸡啄米 VS2010-MFC编程入门之五(MFC消息映射机制概述)-软件开发-鸡啄米 VS2010-MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)鸡啄米 VS2010-MFC编程入门之七(对话框:为对话框添加控件)-软件开发-鸡啄米 VS2010-MFC编程入门之八(对话框:创建对话框类和添加控件变量) VS2010-MFC编程入门之九(对话框:为控件添加消息处理函数)-软件开发-鸡啄米 VS2010-MFC编程入门之十(对话框:设置对话框控件的Tab顺序)-软件开发-鸡啄米 VS2010-MFC编程入门之十一(对话框:模态对话框及其弹出过程)-软件开发-鸡啄米 VS2010-MFC编程入门之十二(对话框:非模态对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)-软件开发-鸡啄米 VS2010-MFC编程入门之十四(对话框:向导对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)-软件开发-鸡啄米 VS2010-MFC编程入门之十六(对话框:消息对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十七(对话框:文件对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十八(对话框:字体对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之十九(对话框:颜色对话框)-软件开发-鸡啄米 VS2010-MFC编程入门之二十(常用控件:静态文本框)-软件开发-鸡啄米 VS2010-MFC编程入门之二十一(常用控件:编辑框Edit Control)-软件开发-鸡啄米 VS2010-MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)-软件开发-鸡啄米 VS2010-MFC编程入门之二十三(常用控件:按钮控件的编程实例)-软件开发-鸡啄米 VS2010-MFC编程入门之二十四(常用控件:列表框控件ListBox)-软件开发-鸡啄米 VS2010-MFC编程入门之二十五(常用控件:组合框控件Combo Box)-软件开发-鸡啄米 VS2010-MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)-软件开发-鸡啄米 VS2010-MFC编程入门之二十七(常用控件:图片控件Picture Control)-软件开发-鸡啄米 VS2010-MFC编程入门之二十八(常用控件:列表视图控件List Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之二十九(常用控件:列表视图控件List Control 下)-软件开发-鸡啄米 VS2010-MFC编程入门之三十(常用控件:树形控件Tree Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之三十一(常用控件:树形控件Tree Control 下)-软件开发-鸡啄米 VS2010-MFC编程入门之三十二(常用控件:标签控件Tab Control 上)-软件开发-鸡啄米 VS2010-MFC编程入门之三十三(常用控件:标签控件Tab Control 下)-软件开发-鸡啄米

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧