CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

编辑框问题

楼主zhanvi(流浪代码)2002-10-23 16:48:32 在 VC/MFC / 界面 提问

编辑框编辑时,如何在按下回车时自动换行? 问题点数:20、回复次数:10Top

1 楼everandforever(Forever)回复于 2002-10-23 16:53:13 得分 1

加上   WANT   RETURN   属性.Top

2 楼everandforever(Forever)回复于 2002-10-23 16:55:36 得分 1

还有MULTILINE属性.Top

3 楼zhanvi(流浪代码)回复于 2002-10-23 17:03:34 得分 0

不行啊,我试过了Top

4 楼YP2002CN(混世阿呆)回复于 2002-10-23 17:04:19 得分 0

同上.  
  同上Top

5 楼zhanvi(流浪代码)回复于 2002-10-23 17:10:17 得分 0

我知道是什么问题了,是因为对话框默认的回车是退出程序,我就把他给屏蔽了,但是如果不屏蔽的话,焦点不在编辑框上的时候按回车就会退出程序,谁有好的方案?  
  谢谢!  
  Top

6 楼andy_lau(天行键,君子当自强不息!)回复于 2002-10-23 17:43:20 得分 10

WANT   RETURN   属性.  
  MULTILINE属性.  
  另外就是你所说的那样屏蔽enter健  
  可以相应wm_char在其中,截获enter健,大致如下:  
  OnChar()  
  {  
      if(是enter健)  
            return;  
  }  
   
  或重载PreTranslageMessage()作相应的判断  
   
  类是下面的例子:  
  如果设定控件NUMBER属性的话将只能键入数字键,有时候不太合适。  
  因此派生一个CEdit的子类,然后重载OnChar函数。  
  由于键码1-26分别对应CtrlA-CtrlZ,因此需要允许编辑控制键,  
  同时还要允许数字键和小数点。VC6.0调试通过。  
   
  void   CNumEdit::OnChar(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)   {  
      //   TODO:   Add   your   message   handler   code   here   and/or   call   default  
      if((nChar>0   &&   nChar<27)   ||   //   允许控制字符如   Ctrl-C、Ctrl-V   等  
          ::isdigit(nChar)   ||   nChar   ==   (UINT)'.')  
          CEdit::OnChar(nChar,   nRepCnt,   nFlags);  
  }  
   
  最后在自己的对话框中声明一个自己的编辑框变量,并将它与控件绑定。绑定方法有两  
  种:  
  1.   通过ClassWizard添加对应的CEdit变量,然后手工将.h头文件中的变量类型由CEdit  
  改为CNumEdit即可。VS.net中还可以直接绑定自己定义的派生类CNumEdit,就不需要手  
  工去改了。  
  2.   直接手工添加CNumEdit变量到对话框,然后在重载对话框的   OnInitDialog函数,加  
  入下面语句:  
      CMyNumEditA.SubclassDlgItem(IDC_EDIT1,this);  
      CMyNumEditB.SubclassDlgItem(IDC_EDIT2,this);  
   
  Top

7 楼zhang865(老人家慢走)回复于 2002-10-24 15:02:58 得分 0

BOOL   CTestdesDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
  //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class  
  if(pMsg->message   ==   WM_KEYDOWN   &&   (pMsg->wParam   ==   VK_ESCAPE   ||   pMsg->wParam   ==   VK_RETURN))  
  {  
  // OnKeyDown((UINT)pMsg->wParam,(UINT)pMsg->lParam,(UINT)pMsg->lParam);  
  return   TRUE;  
  }  
  return   CDialog::PreTranslateMessage(pMsg);  
  }  
  Top

8 楼ruihuahan(飞不起来的笨鸟)回复于 2002-10-24 15:18:48 得分 0

subclass   the   edit   controlTop

9 楼zhanvi(流浪代码)回复于 2002-10-25 10:02:21 得分 0

我的本意是,既不想屏蔽回车,又想把VC缺省的回车快捷建给禁用啊Top

10 楼njsg_zeng(大猫)回复于 2002-10-28 09:16:14 得分 8

重载虚函数OnOK(),里面代码为空,另外将OK按钮改名去掉default   button属性,再生成对应函数,添加代码CDialog::OnOK()即可  
  Top

相关问题

  • 编辑框&&OnKeyDown
  • 编辑框不能编辑。
  • 关于编辑框
  • 关于编辑框。
  • 文本框编辑
  • 有关编辑框问题
  • 多行的edit编辑框?
  • Edit编辑框问题
  • 编辑框地问题
  • 急..编辑框的问题

关键词

  • 属性
  • 屏蔽
  • 回车
  • pmsg
  • onchar
  • 编辑
  • uint
  • nchar
  • wparam
  • enter

得分解答快速导航

  • 帖主:zhanvi
  • everandforever
  • everandforever
  • andy_lau
  • njsg_zeng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo