设置f1为热键出现的问题!高手进,在线等!!!!!

drift1981 2005-01-26 04:17:28
我做了一个帮助文档,想在程序中按f1弹出,可是每次我按f1,帮助文档都运行2次,而直接用鼠标点帮助就没有什么问题,不知为什么,帮忙看看!~
加速键设置如下:
id_help vk_f1 virtkey
映射函数如下:
void CMainFrame::OnHelp()
{
ShellExecute(m_hWnd, "open", "c:\\help.chm", NULL, NULL, SW_SHOW);
}
我该怎样解决这个问题???多谢
...全文
271 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
drift1981 2005-01-29
  • 打赏
  • 举报
回复
哦,原来是这样,多谢楼上,我应该换一个菜单id!
whoo 2005-01-26
  • 打赏
  • 举报
回复
F1本来就是Help热键,
一般如下:
ON_COMMAND(ID_HELP, CMDIFrameWnd::OnHelp)

你又设置一次,估计就是这个原因。

你可以把F1定义为自己的菜单ID热键,而不是系统定义的ID。

如:VK_F1 ID_MY_CUST_HELP 。或者简单的去掉自己定义的热键。
oyljerry 2005-01-26
  • 打赏
  • 举报
回复
响应两次,debug跟踪一下
drift1981 2005-01-26
  • 打赏
  • 举报
回复
没有什么问题啊
IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
"C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
"L", ID_VIEW_LOG, VIRTKEY, CONTROL, NOINVERT
"N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT
"O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT
"S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT
VK_F1, ID_HELP, VIRTKEY, NOINVERT //打开帮助文件
VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT
"X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT
END
出现的问题就是按f1,连续打开两次帮助文件,怪的很
I_Love_CPP 2005-01-26
  • 打赏
  • 举报
回复
你可以自己受冻在这儿设置:

加速键, 对应的ID, VIRTKEY
I_Love_CPP 2005-01-26
  • 打赏
  • 举报
回复
你把你的 xxx.rc打开,找到这个部分:
看加速键设置是否有问题:

IDR_MAINFRAME ACCELERATORS
BEGIN
"N", ID_FILE_NEW, VIRTKEY, CONTROL
"O", ID_FILE_OPEN, VIRTKEY, CONTROL
"S", ID_FILE_SAVE, VIRTKEY, CONTROL
"P", ID_FILE_PRINT, VIRTKEY, CONTROL
"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
"X", ID_EDIT_CUT, VIRTKEY, CONTROL
"C", ID_EDIT_COPY, VIRTKEY, CONTROL
"V", ID_EDIT_PASTE, VIRTKEY, CONTROL
VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL
VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT
VK_F6, ID_NEXT_PANE, VIRTKEY
VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT
END
drift1981 2005-01-26
  • 打赏
  • 举报
回复
我是用classwinzard在app类添加的
drift1981 2005-01-26
  • 打赏
  • 举报
回复
我的意思是出现许多错误在这个函数,是不是要加载相应的库文件或者头文件才可以用?
tangshiping 2005-01-26
  • 打赏
  • 举报
回复
这个函数不是自己加的,可以用向导添加。//CWinApp::WinHelp(dwData, nCmd);是自带的默认代码,屏蔽掉
tangshiping 2005-01-26
  • 打赏
  • 举报
回复
直接就联系了啊,不用设置的,本来这个函数就是响应f1的
drift1981 2005-01-26
  • 打赏
  • 举报
回复
加了这个函数以后,我的程序出了50多个错误啊!!!!!这个函数要怎么跟help菜单和f1键联系起来呢?
tangshiping 2005-01-26
  • 打赏
  • 举报
回复
void C....App::WinHelp(DWORD dwData, UINT nCmd)
{

ShellExecute(NULL,"open",m_strPath,NULL,NULL,SW_SHOWNORMAL);
//CWinApp::WinHelp(dwData, nCmd);
}
写在这里试试

16,467

社区成员

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

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

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