MFC对话框的Edit控件实现响应Ctrl+A全选,并实现自动/手动换行+滚动条
首先是在Properties中设置控件属性的问题,首先必须得将Mutilines属性设为true,才能支持多行显示。
手动换行(按Enter键换行):将Want Return属性设为true
自动换行(即文本超过edit控件宽度后换行):将Vertical Scroll设为true,将Horizontal Scroll设为false,将Auto HScroll设为false,将Auto HScroll设为true。
然后实现对Ctrl+A的响应,这里需要重载对话框类CXXXDlg的PreTranslateMessage函数
BOOL CXXXCommDlg::PreTranslateMessage(MSG* pMsg)
{
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_RECV_MSG);
if (pMsg->message == WM_KEYDOWN &&
pMsg->hwnd == pEdit->GetSafeHwnd())
{
// 响应Ctrl+A
if ((GetKeyState(VK_CONTROL) & 0x8000) && pMsg->wParam == 'A')
{
CString buf;
GetDlgItemText(IDC_EDIT_RECV_MSG, buf);
pEdit->SetSel(, buf.GetLength());
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
GetKeyState() & 0x8000是将Ctrl/Shift/Alt键与其他键作比较,Shift对应VK_SHIFT,Alt对应VK_MENU。然后其他键会存在wParam中。
CEdit::SetSel函数第一个参数是起始字符编号,第二个参数是选中的字符数量。所以这里是将所有字符选中
MFC对话框的Edit控件实现响应Ctrl+A全选,并实现自动/手动换行+滚动条的更多相关文章
- MFC学习之EDIT控件初始化
//四种方法为EDIT控件初始化 //调用系统API HWND hEidt = ::GetDlgItem(m_hWnd,IDC_EDIT1); ::SetWindowText( ...
- mfc 动态创建EDIT控件
知识点: CWnd::Create CWnd::CreateEx Spy++工具 动态创建控件 一. CWnd::Create 参数 virtual BOOL Create( LPCTSTR lpsz ...
- VC++6.0/MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能
Ctrl组合键ASCII码 ^Z代表Ctrl+z ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符0(00) ...
- 控件篇:CheckedListBox的全选与反选
private void cbXmlAll_CheckedChanged(object sender, EventArgs e) { for (int i = 0; i < cblXmlList ...
- win32: 文本编辑框(Edit)控件响应事件
过去几年,关于文本编辑框(Edit)控件的响应事件,我都是在主程序 while(GetMessage(&messages, NULL, 0, 0)) { ... } 捕获. 总感觉这种方式让人 ...
- Iocomp控件教程之Analog Display—模拟显示控件(优于EDIT控件)
Analog Display是简洁的显示控件.用于显示指定准确度和单位的模拟值(实数),能够将准确度设置为0.使显示结果为整数. 第一步:建立MFC对话框 第二步:插入AnalogDisplay控件 ...
- 【转】MFC 自定义edit 限制输入十六进制内容 响应复制粘贴全选剪切的功能
参考地址:MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能 Ctrl组合键ASCII码 ^Z代表Ctrl+z ASCII值 控制字符 AS ...
- MFC限制edit控件的字符输入长度
一. 1.Edit 控件添加EN_CHANGE事件 #define MAX_SIZE 200 void CMyDlg::OnChangeEditFeed() { // TODO: 如果该控件是 RIC ...
- VC++6.0/MFC中如何限制Edit控件输入 例子,只能输入0和1
1.Insert -> New Class -> 在Base Class中选择CEdit,在Name中输入CMyEdit. 2.在左边的ClassView中,右键击CMyEdit,选择Ad ...
随机推荐
- bzoj1704
题解: 贪心 枚举k 然后判断一下是否可行 代码: #include<bits/stdc++.h> using namespace std; ; int n,a[N],b[N],sum,c ...
- LeetCode OJ:H-Index(H指数)
Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...
- tooltip提示框组件
Tooltip 提示框组件 可独立于其他组件通过$.fn.tooltip.defaults重写默认的defaults.当用户移动鼠标指针在某个元素上时,出现提示信息窗口来显示额外信息.提示内容可以包含 ...
- Django项目的ORM操作之--数据模型类创建
在django项目中,其自带了ORM(Object Relation Mapping)对象关系映射框架,我们在django项目下app的models模块下对类进行操作,通过ORM会将我们对类的操作转化 ...
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星云 ...
- flowable ProcessEngine和ProcessEngineConfiguration
ProcessEngine是流程引擎,ProcessEngineConfiguration与前面四个引擎配置有些不同. ProcessEngineConfiguration增加了邮件服务和httpCl ...
- 神奇的 ViewDragHelper,让你轻松定制拥有拖拽能力的 ViewGroup
为了吸引大家的注意力,先给大家看一张动图: 相信这种效果大家都见过吧?我第一次见到这样的效果时,心里也痒痒的,急于想实现这种功能,后来因为拖延症的问题,就一直没有去弄这件事.现在这段时间,工作比较轻闲 ...
- BeautifulSoup的安装和使用
Python用做数据处理还是相当不错的,如果你想要做爬虫,python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包. ...
- event.preventDefault() 解决按钮多次点击 导致页面变大
event.preventDefault() 解决按钮多次点击 导致页面变大
- Java 保存对象到文件并恢复 ObjectOutputStream/ObjectInputStream
1.从inputFile文件中获取内容,读入到set对象: 2.然后通过ObjectOutputStream将该对象保存到outputFile文件中: 3.最后通过ObjectInputStream从 ...