CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

这种功能怎么实现???

楼主dalinsky(大林)2001-09-19 10:15:37 在 VC/MFC / 基础类 提问

在资源对话框里有三个控件:Edit1,Edit2,Button1,  
  按Button1,在Edit2中显示需要的内容;  
  现在我想在Edit1中按回车键,也能在Edit2中显示需要的内容,与Button1的功能一样。这种功能怎么实现???Edit中没有回车事件吧。 问题点数:20、回复次数:15Top

1 楼whiskers(胡子)回复于 2001-09-19 10:21:29 得分 1

重载PreTranslateMessage();处理回车键Top

2 楼lyneville(心佛)回复于 2001-09-19 10:30:32 得分 1

defaultTop

3 楼TangDynasty(俺们那嘎都是IT人,俺们那嘎盛产CAO)回复于 2001-09-19 10:38:55 得分 1

将button1的default   button选项选中Top

4 楼kaoms(())回复于 2001-09-19 10:43:23 得分 3

用ClassWizard生成一个新类CMyEdit,基类为CEdit  
  然后使用CMyEdit代替原来的CEdit的控件,响应WM_KEYDOWN消息  
  void   CMyEdit::OnKeyDown(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)      
  {    
          //   TODO:   Add   your   message   handler   code   here   and/or   call   default    
          if   (nChar=   =   VK_RETURN)    
          {  
                  //处理回车键消息  
          }  
  }Top

5 楼wxbhlj(波波)回复于 2001-09-19 10:44:29 得分 1

"将button1的default   button选项选中   "不是个好办法,建议还是用PreTranslateMessage();Top

6 楼phoenix96_2000(Arcrest)回复于 2001-09-19 10:46:41 得分 1

OnChar中捕捉到回车键敲入后,  
  SendMessage(BN_CLICK,IDC_BUTTON1,0)  
  这样便相当于按了键,Edit2中就显示文本了Top

7 楼run(一路狂奔)回复于 2001-09-19 11:20:41 得分 3

按照whiskers(胡子)的方法,我写了一段程序  
  CEdit*   pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);  
  HWND   hExitWnd=pEdit->m_hWnd;  
  if(pMsg->hwnd==hExitWnd)  
  {  
  if(pMsg->message==WM_KEYDOWN)  
  {  
  if(pMsg->wParam==13)  
  {  
  AfxMessageBox("回车,你想干什么?");  
  return   true;  
  }  
  }  
  }  
  return   CDialog::PreTranslateMessage(pMsg);Top

8 楼dalinsky(大林)回复于 2001-09-19 11:21:53 得分 0

kaoms(国庆节要到喽):  
        我也是这么做的,可是我在处理回车键消息时,信息怎么也写不到原来的资源对话框里的Edit2中,你知道吗?Top

9 楼beni()回复于 2001-09-19 11:43:40 得分 1

请问为什么"将button1的default   button选项选中   "不是个好办法?  
  不过,同时要去掉别的按钮的default   button选项,  
  去掉EDIT的want   return选项Top

10 楼beni()回复于 2001-09-19 11:47:06 得分 2

"信息怎么也写不到原来的资源对话框里的Edit2中"?  
  已经得到edit1的数据了吗?  
  如果edit2定义的是CString或菏泽int变量  
  要先赋值再用UpdateData();来发送Top

11 楼run(一路狂奔)回复于 2001-09-19 12:09:13 得分 2

"信息怎么也写不到原来的资源对话框里的Edit2中"?  
   
  在CMyEdit中,如果不知道整个对话框的对象指针,肯定就没办法访问Edit2了。  
  用(CDialog*)GetParent()来得到对话框,然后再访问Edit2。  
   
  只是这样做,CMyEdit就没有通用性了。Top

12 楼chenzhou35(vcworm.51.net)回复于 2001-09-19 12:42:13 得分 1

m_edit2.SetWindowText("hehe");  
  UpdateData(FALSE);Top

13 楼lixiongfeng(程序员-天煞)回复于 2001-09-19 12:57:22 得分 0

用SetWindowText就不必用UpdateData了Top

14 楼lixiongfeng(程序员-天煞)回复于 2001-09-19 13:01:59 得分 3

method1:将button1的default   button选项选中  
  method2:响应EDIT2的OnChar事件,获取回车按键后,得到EDIT1的文本   1、用GetWindowText   2、为EDIT1定义变量m_strEdit1;可用UadateData();  
  然后直间调用OnButton1()  
  Top

15 楼dalinsky(大林)回复于 2001-09-19 17:28:13 得分 0

问题是:  
          1、不要用MFC呢,连CEdit类都不能使用!!!  
          2、我重新定义了一个新类,但这个新类中的消息却无法发送到资源对话框中的  
                Edit2中去.Top

相关问题

  • 这种功能怎么实现呢?
  • 这种功能怎么实现呢?
  • 谁知道这种常见的功能是怎么实现的?
  • 谁知道在dreamweaver中怎么实现这种功能.
  • 这种功能怎么实现?急!急!急!
  • 这种功能怎么实现?急!急!急!
  • 这种类型的ComboBox功能怎么实现?(急诊)
  • 用velocity实现这种功能怎么做?谢谢,分不够再加
  • 用VB怎么实现这种程序自动升级的功能
  • 保存功能是怎么实现的?

关键词

  • 选项
  • 消息
  • 信息
  • edit
  • 回车键
  • cmyedit
  • cedit
  • 选项选中
  • 资源对话框
  • 回车

得分解答快速导航

  • 帖主:dalinsky
  • whiskers
  • lyneville
  • TangDynasty
  • kaoms
  • wxbhlj
  • phoenix96_2000
  • run
  • beni
  • beni
  • run
  • chenzhou35
  • lixiongfeng

相关链接

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

广告也精彩

反馈

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