带有菜单的EDIT控件实现

带有菜单的EDIT控件实现

ID:38862014

大小:27.50 KB

页数:3页

时间:2019-06-20

带有菜单的EDIT控件实现_第1页
带有菜单的EDIT控件实现_第2页
带有菜单的EDIT控件实现_第3页
资源描述:

《带有菜单的EDIT控件实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、带有菜单的EDIT控件实现    eidt控制是vc中经常使用的文本输入输出交互控制,有的时候,我们为了实现对输入,输出有特殊的操作过程,那么,原来的edit控制的功能也许就不一定能实现我们的要求,或者实现的不是那么灵活,因此,我们也经常在edit控件的基础上继承基类来做一些配生的子类情况下实现我们自己在工程中需要的特殊的要求。本文介绍一个可以带有菜单操作的edit类的实现过程,基础类eidt基类,在继承的子类上添加各个菜单操作功能,其中的菜单操作也是为了实现多edit中的文本进行各种文本的常规操作。    这个类的实现

2、过程如下:。h文件#if!defined(AFX_MENUEDIT_H__8EA53611_FD2B_11D4_B625_D04FA07D2222__INCLUDED_)#defineAFX_MENUEDIT_H__8EA53611_FD2B_11D4_B625_D04FA07D2222__INCLUDED_#if_MSC_VER>1000#pragmaonce#endifclassCMenuEdit:publicCEdit{public:  CMenuEdit(){};protected:  virtualBOOLOn

3、Command(WPARAMwParam,LPARAMlParam);  afx_msgvoidOnContextMenu(CWnd*pWnd,CPointpoint);  DECLARE_MESSAGE_MAP()};#endif。cpp文件#include"stdafx.h"#include"MenuEdit.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif#defineMES_UNDO    _

4、T("&Undo")#defineMES_CUT    _T("Cu&t")#defineMES_COPY    _T("&Copy")#defineMES_PASTE   _T("&Paste")#defineMES_DELETE   _T("&Delete")#defineMES_SELECTALL _T("Select&All")#defineME_SELECTALL  WM_USER+0x7000BEGIN_MESSAGE_MAP(CMenuEdit,CEdit)  ON_WM_CONTEXTMENU()END_

5、MESSAGE_MAP()voidCMenuEdit::OnContextMenu(CWnd*pWnd,CPointpoint){  SetFocus();  CMenumenu;  menu.CreatePopupMenu();  BOOLbReadOnly=GetStyle()&ES_READONLY;  DWORDflags=CanUndo()&&!bReadOnly?0:MF_GRAYED;  menu.InsertMenu(0,MF_BYPOSITION

6、flags,EM_UNDO,    MES_UNDO);

7、  menu.InsertMenu(1,MF_BYPOSITION

8、MF_SEPARATOR);  DWORDsel=GetSel();  flags=LOWORD(sel)==HIWORD(sel)?MF_GRAYED:0;  menu.InsertMenu(2,MF_BYPOSITION

9、flags,WM_COPY,    MES_COPY);  flags=(flags==MF_GRAYED

10、

11、bReadOnly)?MF_GRAYED:0;  menu.InsertMenu(2,MF_BYPOSITION

12、flag

13、s,WM_CUT,    MES_CUT);  menu.InsertMenu(4,MF_BYPOSITION

14、flags,WM_CLEAR,    MES_DELETE);  flags=IsClipboardFormatAvailable(CF_TEXT)&&    !bReadOnly?0:MF_GRAYED;  menu.InsertMenu(4,MF_BYPOSITION

15、flags,WM_PASTE,    MES_PASTE);  menu.InsertMenu(6,MF_BYPOSITION

16、MF_SEP

17、ARATOR);  intlen=GetWindowTextLength();  flags=(!len

18、

19、(LOWORD(sel)==0&&HIWORD(sel)==    len))?MF_GRAYED:0;  menu.InsertMenu(7,MF_BYPOSITION

20、flags,ME_SELECTALL,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。