这种功能怎么实现???
在资源对话框里有三个控件: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




