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

请各位帮帮小弟,谢谢!!

楼主as2001(天行者)2004-12-03 18:21:38 在 VC/MFC / 基础类 提问

1、用VC6所生成的对话框如果按下F1就会提示   XXX.hlp   没有找到,我想屏蔽这个功能,请问怎么解决?  
   
  2、我想在对话框A中生成另一个对话框B(两个对话框的位置可以移动的),这个对话框B是总在该对话框A的最前面,但是对话框A和对话框B同时可以进行操作,请问怎么解决? 问题点数:100、回复次数:14Top

1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-12-03 18:27:37 得分 20

BEGIN_MESSAGE_MAP(CYourApp,   CWinApp)  
  ...  
        ON_COMMAND(ID_HELP_FINDER,   OnHelpFinder)  
        ON_COMMAND(ID_HELP,   OnHelp)  
        ON_COMMAND(ID_CONTEXT_HELP,   OnContextHelp)  
        ON_COMMAND(ID_DEFAULT_HELP,   OnHelpFinder)  
  ...  
  END_MESSAGE_MAP()  
   
  自己实现OnHelp等方法,这些方法可以代码。  
  Top

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-12-03 18:28:44 得分 20

CADialog::OnInitDialog()  
  {  
  CDialog::OnInitDialog();  
  SetWindowPos(pADialog,0,0,0,0,SWP_NOSIZE);  
  ...  
  }Top

3 楼koko1998(高价购买火车票)回复于 2004-12-03 19:45:30 得分 0

使用SetWindowPos函数将对话框B总设置为最前方  
  两个对话框是非模式的Top

4 楼zyp2kyear(E腾鸟)回复于 2004-12-03 19:51:08 得分 0

UP,充电中Top

5 楼superhandsome(帅得要崩溃)回复于 2004-12-03 19:53:50 得分 20

1。你建立工程的时候,选择不需要上下文帮助~   或者你自己实现帮助的代码。  
   
  2。你将B对话框做成是非模式的。~  
  CBDialog   bDialog;  
  bDialog.Create();  
  bDialog.Show();  
   
  Top

6 楼pleasehelpme(革命尚未成功,同志仍需努力)回复于 2004-12-03 20:29:08 得分 0

同上Top

7 楼luxin24(海洋)回复于 2004-12-03 20:41:52 得分 20

第一个问题可以通过重载pretranslatemessage来过滤消息:  
  在初始化里:  
  RegisterHotKey(m_hWnd,0Xafff,0,VK_F1);  
   
  BOOL   CTestDlg::PreTranslateMessage(MSG*   pMsg)    
  {  
  if   (pMsg->message==WM_HOTKEY   &&   pMsg->wParam==0Xafff)  
  {  
  MessageBox("");  
  return   TRUE;  
  }    
  return   CDialog::PreTranslateMessage(pMsg);  
  }Top

8 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-03 20:53:31 得分 0

WM_TOPMOST,SetWindowPosTop

9 楼hongzm(西门吹牛)回复于 2004-12-03 21:49:50 得分 0

学习~Top

10 楼as2001(天行者)回复于 2004-12-03 23:53:43 得分 0

第二个问题还没有解决,请各位继续帮帮小弟!!谢谢!!Top

11 楼as2001(天行者)回复于 2004-12-08 17:51:04 得分 0

第二个问题还没有解决,请各位继续帮帮小弟!!谢谢!!Top

12 楼flinming(flinming)回复于 2004-12-08 18:21:28 得分 0

PreTranslateMessage  
   
  通过窗体拦截消息,看是否可以吧F1按键拦截Top

13 楼koko1998(高价购买火车票)回复于 2004-12-08 18:30:25 得分 20

long   OldProc   =   NULL;  
  LRESULT   CALLBACK   WindowProce(HWND   hWnd,   UINT   uMsg,   WPARAM   wParam,   LPARAM   lParam)  
  {  
  if(uMsg   ==   WM_COMMAND   &&   wParam   ==   ID_HELP)//F1   key  
  AfxMessageBox("help");  
  return   CallWindowProc((WNDPROC)OldProc,   hWnd,   uMsg,   wParam,   lParam);  
  }  
   
  在CMainFrame::OnCreate里加上  
  OldProc   =   SetWindowLong(this->GetSafeHwnd(),   GWL_WNDPROC,   (long)(WindowProce));  
   
  可以把F1按键拦截  
  Top

14 楼as2001(天行者)回复于 2005-01-11 19:09:30 得分 0

谢谢!!Top

相关问题

  • 请教各位各位!!
  • 请问各位?
  • 请教各位!!
  • 请教各位:
  • 请问各位:
  • 请教各位。
  • 请教各位!
  • 请问各位,/?????--------
  • 请教各位?
  • 请教各位!

关键词

  • 解决
  • 对话框
  • f1
  • 帮帮小弟
  • bdialog
  • 谢谢
  • oldproc
  • pretranslatemessage
  • pmsg
  • 拦截

得分解答快速导航

  • 帖主:as2001
  • DentistryDoctor
  • DentistryDoctor
  • superhandsome
  • luxin24
  • koko1998

相关链接

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

广告也精彩

反馈

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