MFC高级控件RichEdit2.0的使用
MFC高级控件RichEdit的使用
- MFC高级控件RichEdit的使用
- MFC控件设置焦点,实现回车后编辑框内容清空,焦点停留在该编辑框内
MFC高级控件RichEdit的使用
RichEdit控件,可以设置编辑框内不同的行、不同的段落有不同的字体、颜色。
效果如下:
1、添加一个对话框,设置如下(下图上面的框是RichEdit2.0控件,下面的框是编辑框):
2、给上图这两个控件设置关联的成员变量(控件类型):
3、在类向导中添加对话框虚函数OnInitDialog
BOOL CMFCApplication1Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码DWORD dwOldStyle = m_redit.GetExStyle(); //默认包含透明属性m_redit.ModifyStyleEx(dwOldStyle, WS_EX_CLIENTEDGE); //去除透明属性//m_redit.SetBackgroundColor(TRUE, GetSysColor(COLOR_3DFACE));m_redit.SetBackgroundColor(FALSE, RGB(30, 30, 30));CHARFORMAT2 cf2;//memset(&cf2, 0, sizeof(CHARFORMAT2));cf2.cbSize = sizeof(CHARFORMAT2);cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_COLOR;_tcscpy_s(cf2.szFaceName, _countof(cf2.szFaceName), _T("隶书"));cf2.yHeight = 320;cf2.crTextColor = 255; 设置默认字体颜色//cf2.crTextColor = RGB(0, 255, 0); //也可以用RGB宏cf2.dwEffects = CFE_AUTOCOLOR & 0xBFFFFFFF; //缺省为CFE_AUTOCOLOR 0x40000000m_redit.SetDefaultCharFormat(cf2);m_redit.SetWindowTextW(_T("---欢迎使用本软件---\r\n"));m_redit.SetSel(-1, -1);m_redit.ReplaceSel(_T("祝你聊天愉快\r\n"));return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
4、编写发送按钮处理函数
void CMFCApplication1Dlg::OnBnClickedOk()
{//CRichEditCtrl使用大全http://www.cppblog.com/kyelin/archive/2010/11/03/132300.aspxUpdateData(TRUE);CString str;COleDateTime time = COleDateTime::GetCurrentTime();str.Format(_T("梦飞龙卷风<mfljf@qq.com> %d:%d:%d\r\n"), time.GetHour(), time.GetMinute(), time.GetSecond());CHARFORMAT2 cf2;cf2.cbSize = sizeof(CHARFORMAT2);cf2.dwMask = CFM_FACE | CFM_SIZE | CFM_COLOR;cf2.crTextColor = RGB(210, 115, 25);cf2.yHeight = 160;cf2.dwEffects = 0;_tcscpy_s(cf2.szFaceName, _countof(cf2.szFaceName), _T("宋体"));m_redit.SetSel(-1, -1);//m_redit.SetSel(m_redit.GetTextLength(), -1);//m_redit.SetDefaultCharFormat(cf2);m_redit.SetSelectionCharFormat(cf2);m_redit.ReplaceSel(str);GetDlgItemText(IDC_EDT_INPUT, str);cf2.dwMask |= CFM_UNDERLINE | CFM_BOLD | CFM_ITALIC;cf2.dwEffects |= CFE_UNDERLINE | CFE_BOLD | CFE_ITALIC;cf2.dwEffects &= 0xBFFFFFFF;_tcscpy_s(cf2.szFaceName, _countof(cf2.szFaceName), _T("楷体"));cf2.yHeight = 250;cf2.crTextColor = RGB(190, 160, 250);m_redit.SetSel(-1, -1);//m_redit.SetSel(m_redit.GetTextLength(), -1);m_redit.SetSelectionCharFormat(cf2);m_redit.ReplaceSel(str + _T("\r\n"));//cf2.dwEffects &= ~CFE_UNDERLINE;m_edit.SetSel(0, -1);m_edit.Clear();UpdateData(FALSE);m_edit.SetFocus();/*CWnd* pWnd = GetDlgItem(IDC_EDT_INPUT);HWND hWnd = pWnd->GetSafeHwnd();::SetFocus(hWnd);*/
}
MFC控件设置焦点,实现回车后编辑框内容清空,焦点停留在该编辑框内
设置对话框控件的tab order。 按Ctrl+D即可看见。将需要被设置到焦点的控件的tab order设为1。
代码设置(实现回车后编辑框内容清空,焦点停留在该编辑框内):
m_edit.SetSel(0, -1);m_edit.Clear();UpdateData(FALSE);m_edit.SetFocus();
- 其他代码设置方式
//方式一myedit1.SetFocus(); //设置焦点//myedit1是控件变量名//方式而CWnd* pWnd = GetDlgItem(IDC_EDIT1);//设置焦点pWnd->SetFocus();//方式三CWnd* pWnd2 = GetDlgItem(IDC_EDIT2);HWND hWnd = pWnd2->GetSafeHwnd();::SetFocus(hWnd); //设置焦点//全局函数//返回值:若函数调用成功,则返回原先拥有键盘焦点的窗口句柄。若hWnd参数无效或窗口未与调用线程的消息队列相关,则返回值为NULL
- 其他参考
对话框的OnInitDialog返回FALSE。解释如下:(摘抄至msdn)
If OnInitDialog returns nonzero, Windows sets the input focus to the first control in the dialog box.
The application can return 0 only if it has explicitly set the input focus to one of the controls in the dialog box.
- 转载
用回车键替代TAB键传递焦点比较符合我们的输入习惯,在MFC中实现的大致不走如下:
1、建立一个基于对话框的MFC应用程序;
2、在对话框中添加若干编辑框和控件,按住ctrl+D键设置焦点顺序(例如你想编辑框IDC_EDIT1设置为第一个焦点,只需要第一个点这个编辑框即可,接下来的依次点就可以了);
3、将所有编辑框的属性中mutilline和want return设为true;
4、在dlg类中重载PreTranslateMessage函数,如下所示:
BOOL **Dlg::PreTranslateMessage(MSG pMsg)//传递焦点
{
// TODO: 在此添加专用代码和/或调用基类
if((pMsg->message == WM_KEYDOWN) && (VK_RETURN == (int) pMsg->wParam))
{if(GetFocus()->GetDlgCtrlID() != IDOK){pMsg->wParam = VK_TAB;}
}return CDialogEx::PreTranslateMessage(pMsg);
}
注意:1、IDOK为对话框中的缺省按钮ID,若对话框的缺省按钮已更改,则写相对应的缺省按钮的ID号;
2、此方法可以实现在编辑框之间的依次切换,当遇到第一个按钮控件时(一般设置为缺省按钮),按下回车键相当于执行鼠标点击该按钮的功能。
————————————————
版权声明:本文为CSDN博主「hswangjiajia」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hswangjiajia/article/details/12979379
MFC高级控件RichEdit2.0的使用相关推荐
- RecyclerView高级控件-附实例【android专题】
RecyclerView高级控件 RecyclerView是Android 及其重要的一个高级UI控件,使用频率及其的高,APP的90%以上的页面都会使用的到.由于其出色的性能和插拔式的架构设计,被全 ...
- Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现...
Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...
- 《移动项目实践》实验报告——Android高级控件
实验目的 1.熟悉App开发常用的一些高级控件及相关工具,主要包括日期时间控件的用法.列表类视图及其适配器的用法.翻页类视图及其适配器的用法.碎片及其适配器的用法等: 2.熟悉四大组件之一广播Broa ...
- Android从入门到进阶之高级控件
高级控件 1.自动完成文本控件 在搜索引擎(百度.搜狗)输入几个文字,会出来一些提示.可以减少用户的输入,提高程序的效率.刚才看到的自动提示,ajax技术. 1.1AotoCompleteTextVi ...
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件
本章介绍了App开发常用的一些高级控件用法,主要包括:如何使用下拉框及其适配器.如何使用列表 类视图及其适配器.如何使用翻页类视图及其适配器.如何使用碎片及其适配器等.然后结合本章所学 的知识,演示了 ...
- 三、PyQt5高级控件的使用
(四)PyQt5高级控件的使用 PyQt5中包含了很多用于简化窗口设计的可视化控件,除了常用控件外,还有一些关于进度.展示数据等的高级控件. 本章重点讲解PyQt5程序开发中用到的一些高级控件,主要包 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...
- Android 高级控件(七)——RecyclerView的方方面面
Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...
最新文章
- 在公司中,如何提升自己的段位,脱颖而出
- php 教程 字符联接,PHP字符串的连接_PHP教程
- 淘宝搜索中基于embedding的召回
- mysql数据类型优化
- 并联系统的失效率公式推导_供暖系统水力平衡率对室温的影响
- Ubuntu16.04 Caffe 编译安装步骤记录
- python使用英汉大字典离线获取单词释义
- 东北真有“油炸冰溜子”这道菜吗?
- nginx,作为前端的你会多少?
- 华为y220t android版本升级,华为 Y220T(移动版)救砖教程 救砖包 刷回官方系统支持OTA升级...
- 嵌入式驱动开发遇到version magic不匹配解决办法
- java 中英日期转换器_Java SimpleDateFormat中英文时间格式化转换详解
- 计算机物联网应用技术工资,物联网专业毕业生现状 刚毕业薪资多少
- 第九周 任务一
- L3-001 凑零钱 (30 分)
- c语言中if( k1)的含义,C语言:我的按键程序K1键按下没有反应,其他两个都有反应...
- 直播回顾 | 第四期直播课堂:5G消息在工业领域的应用分享
- 后端服务常见问题解决方案
- 麒麟kylin3安装字体
- 创建 CAD 文档模板
热门文章
- 【牛客CMB2 小招喵跑步】
- Zernike多项式的Matlab代码
- 国企招聘:湖北铁路集团2023校园招聘
- GM Right Mouse Pro for Mac,鼠标右键增强工具
- web性能测试术语小集合 [ 光影人像 东海陈光剑 的博客 ]
- [Android开发那点破事]解决android.os.NetworkOnMainThreadException
- 根据输入的正整数y所代表的年份,计算输出该年份是否为闰年 闰年的判断标准:
- 数字冰雹-智慧电力可视化分析决策系统
- 根据出生日期计算年龄或者根据身份证号计算年龄
- symbol的基本使用方式