关于多行编辑框中回车键的相应

lumingshang2 2012-04-24 02:10:40
小弟我最近使用编辑框的时候发现了一个问题,一个对话框上面只用一个编辑框,没有其他的按钮或者其他的控件,这个时候我输入完文字以后按回车键以后就发现相应了OK按钮的消息,这个正是我需要的,可是后来我发现这个编辑框可能需要输入多行文本,然后我就对编辑框进行改进,现在可以输入多行文本了,可是我发现当我按下回车键,变成了换行而不是相应OK按钮了,因此不能实现我以前想实现的功能,而且我发现按下Ctrl和回车键也是换行,这就让我不知道怎么办了。
我现在希望可以像QQ那样,按下ctrl和回车是换行,而只按下回车就是相应OK按钮的消息,请各位大侠帮帮忙。我先谢谢各位大侠了。
因为一些其他的原因,我的对话框上面没有任何按钮,包括OK和Cancle这两个按钮也被我删除了。而且我也不希望上面再增加一些其他的按钮。
先谢谢各位了。
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lumingshang2 2012-04-25
  • 打赏
  • 举报
回复
我发现网上说PreTranslateMessage只能够处理一个键按下的消息,对于这样的组合键好像不起作用
lumingshang2 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
重写虚函数
virtual BOOL PreTranslateMessage(MSG *pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN: OnOK(); return TRUE;
}
}
return CDialog::PreTranslateMes……
[/Quote]

大侠,是这样的,我试了一下你的方法,但是还有一个问题:
我希望是按下回车键相应的OnOK消息,而同时按下ctrl和回车键就换行,而不响应OnOK消息,
我按照你的方法试了,发现按下ctrl和回车也相应ok消息,这样我的编辑框就不能够换行了。
还请不吝赐教
  • 打赏
  • 举报
回复
PreTranslateMessage
Eleven 2012-04-24
  • 打赏
  • 举报
回复
编辑框的属性编辑上勾上Want return
sumos 2012-04-24
  • 打赏
  • 举报
回复
重写虚函数
virtual BOOL PreTranslateMessage(MSG *pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN: OnOK(); return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
lumingshang2 2012-04-24
  • 打赏
  • 举报
回复
能不能说的具体一些啊
gold_water 2012-04-24
  • 打赏
  • 举报
回复
在PreTranslateMessage(MSG* pMsg)函数中拦截你想要处理的消息,然后想怎么处理就怎么处理;

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧