MFC中如何使之快捷键,以及相应同时判断键盘状态

coldant 2009-09-04 11:33:43
MFC的对话框中如何对一些按钮 COMBOX等设置快捷键呢,
我的listbox目前是单选的情况,设置什么属性可以改为多选呢,多选的要求是按住ctrl多选,按shift则一次从上到下选很多,如何实现这些功能呢?各位请指教
...全文
597 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
牛 魔 王 2011-11-04
  • 打赏
  • 举报
回复
直接在资源里设置多简单
coldant 2009-09-08
  • 打赏
  • 举报
回复
这个问题解决了,谢谢各位,
huang147440013 2009-09-08
  • 打赏
  • 举报
回复
看看
coldant 2009-09-07
  • 打赏
  • 举报
回复
这个MFC中还有很多问题要问大家,等会解决这个问题,我重新开贴加分^_^
coldant 2009-09-07
  • 打赏
  • 举报
回复
我现在做的+ - 号的处理就是::PreTranslateMessage
我记得以前好像有个是修改ctrl+a 中的ctrl的设置,

不过现在正在做的+ - 快捷键处理中,5个控件为radio-button,遇到的问题是这样 我用鼠标点击radio-button上面会有个虚线的小框框,同时按钮会变,

我在PreTranslateMessage用快捷键控制的时候,如果前一个按钮用鼠标按下的,现在按+ 选中下一个radio-button的时候,下一个按钮会变,但是前一个用鼠标点的小框框依然存在,正确的情况应该是上一个的虚线小框框消失,下一个按钮应该有小框框。
快捷键直接调用的on... 响应函数。

这个虚线小框框的问题不知道如何解决呢?
MoXiaoRab 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 coldant 的回复:]
我用的编译器是2008,
在按钮的 Caption 属性里填入 Button1(&A) ,这样在按钮上就会显示Button(下划线A) ,运行后按 Ctrl+A就点击了按钮

有没什么方法只按a键就可以,不用+ctrl?

如果我的快捷键是shift+a,又应该如何处理shift这个响应呢?

如果我需要响应某些按键,比如+ -俩个号,用来对5个按钮进行从左到右,从右到左这样的操作,应该如何做呢?

刚接触MFC,各位多多帮忙,谢谢了^_^


[/Quote]
如果不用Ctrl的话,就必须重载WM_KEYDOWN按键信息,象楼上的一样

也可以通过RegisterHotKey注册热键实现
xylicon 2009-09-07
  • 打赏
  • 举报
回复
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{

if(pMsg->message==WM_KEYDOWN) //判断是否有按键按下
{
switch(pMsg->wParam)
{
case VK_DOWN: //表示是方向键中的向下的键

//add handle code here

break;

case VK_UP: //表示是方向键中的向上的键

//add handle code here

break;

default:

break;

}

}

}


可以使用PreTranslateMessage拦截键盘消息,然后进行处理。
coldant 2009-09-07
  • 打赏
  • 举报
回复
我用的编译器是2008,
在按钮的 Caption 属性里填入 Button1(&A) ,这样在按钮上就会显示Button(下划线A) ,运行后按 Ctrl+A就点击了按钮

有没什么方法只按a键就可以,不用+ctrl?

如果我的快捷键是shift+a,又应该如何处理shift这个响应呢?

如果我需要响应某些按键,比如+ -俩个号,用来对5个按钮进行从左到右,从右到左这样的操作,应该如何做呢?

刚接触MFC,各位多多帮忙,谢谢了^_^

jyh_baoding 2009-09-07
  • 打赏
  • 举报
回复
帮顶
MoXiaoRab 2009-09-07
  • 打赏
  • 举报
回复
SetFocus设置了焦点,就有那个虚线小框框了
xylicon 2009-09-07
  • 打赏
  • 举报
回复
虚线小框框 可以用 SetFocus函数来设置。
coldant 2009-09-07
  • 打赏
  • 举报
回复
虚线小框框的问题,没找到相关的函数,
我们使用tab选择控件的时候也会出现这种虚线小框框表示当前的控件,用什么函数控制这个虚线小框框的出现呢?
另外,控件button是否能和combox那样,在按一下后能出现按下效果,等下一次在按还原的效果呢?
das_jack 2009-09-07
  • 打赏
  • 举报
回复
使用CAccelator
猞猁狲 2009-09-05
  • 打赏
  • 举报
回复
listbox的属性 selection 选项中选择 Multiple 就可以了

为按钮设置快捷键,在按钮的 Caption 属性里填入 Button1(&A) ,这样在按钮上就会显示Button(下划线A) ,运行后按 Ctrl+A就点击了按钮
晒月光的青蛙 2009-09-05
  • 打赏
  • 举报
回复
设置为MULTIPLE楼主的输球都可以满足了
xylicon 2009-09-04
  • 打赏
  • 举报
回复
MFC的对话框中如何对一些按钮 COMBOX等设置快捷键呢,
按钮的快捷方式,可以在按钮控件的属性中的Caption 中的标题后面加(&X) 其中X就是快捷键了。例如,取消(&C)
xylicon 2009-09-04
  • 打赏
  • 举报
回复
我的listbox目前是单选的情况,设置什么属性可以改为多选呢,多选的要求是按住ctrl多选,按shift则一次从上到下选很多,如何实现这些功能呢?

selection属性框中选选择Extended就OK了

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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