当前位置: 首页 > wzjs >正文

聊城集团网站建设价格推广教程

聊城集团网站建设价格,推广教程,wordpress 共存,word上下页边距怎么调文章目录1 按回车键 程序闪退问题1.1 问题描述1.2 原因分析1.3 解决办法1.3.1 方法一:OnOK函数写成空函数1.3.2 方法二: 直接返回2 关闭 ESC键程序退出 问题2.1 [方法1]2.2 [方法2]1 按回车键 程序闪退问题 1.1 问题描述 在输入框输入完毕后一般习惯 回…

文章目录

  • 1 按回车键 程序闪退问题
    • 1.1 问题描述
    • 1.2 原因分析
    • 1.3 解决办法
      • 1.3.1 方法一:OnOK函数写成空函数
      • 1.3.2 方法二: 直接返回
  • 2 关闭 ESC键程序退出 问题
    • 2.1 [方法1]
    • 2.2 [方法2]

1 按回车键 程序闪退问题

1.1 问题描述

在输入框输入完毕后一般习惯 回车键,

但MFC程序运行后,在编辑框输入回车,运行窗口立即退出。

在一般情况下编写的对话框程序,用户在运行的时候,如果不注意按下了ENTER或者 ESC键,程序就会立刻退出,

1.2 原因分析

产生这样的原因,有以下几种情况:

  • ①按下Enter 键时,Windows 就会自动去找输入焦点落在了哪一个按钮上,当获得焦点的按钮的四周将被点线矩形包围。

  • ②如果所有按钮都没有获得输入焦点,windows 就会自动去寻找程序或资源所指定的默认按钮(默认按钮边框较粗)。

  • ③如果对话框没有默认按钮,那么即使对话框中没有 OK 按钮,OnOK 函数也会动被调用,

对于一个普通的对话框程序来说,OnOK 函数的调用,以为着程序会立刻退出。

1.3 解决办法

1.3.1 方法一:OnOK函数写成空函数

为了使Enter 键无效,最简单的办法就是将 CExDIg的OnOK函数写成空函数,然后针对OK按钮写一个新的函数来响应。

(事实上针对OK按钮,我没有写一个新的函数,但系统自带的 确认/取消 按钮仍然可用)

在…Dlg.h文件中申明

void OnOK();

在…Dlg.cpp文件中写一个空的OnOK()函数

void CSerialPortDlg::OnOK()
{//MFC的Enter键默认调用OnOK 函数,//用户在运行的时候,如果不注意按下了ENTER或者 ESC键,程序就会立刻退出,//为了使Enter 键无效,最简单的办法就是将的OnOK函数写成空函数//此时,系统自带的 确认/取消 按钮仍然可用
}

在这里插入图片描述

在这里插入图片描述
到此解决了

1.3.2 方法二: 直接返回

自己的操作完成之后一定要直接返回,不要把回车消息继续交给MFC函数处理!!!

BOOL CSSmallClassDlg::PreTranslateMessage(MSG* pMsg)
{// TODO: 在此添加专用代码和/或调用基类if (pMsg->message == WM_KEYDOWN){//是回车消息  并且 是你的编辑框上的 回车消息if (pMsg->wParam == VK_RETURN && pMsg->hwnd == m_SendDataEdit.m_hWnd){//中间 你自己 的 响应操作//自己添加的 代码 完成后 就直接返回 不要把消息继续交给下边的函数(系统处理)return TRUE;}}return __super::PreTranslateMessage(pMsg);
}

2 关闭 ESC键程序退出 问题

ESC键的原理也是如此,它是默认和 OnCancel函数映射在一起的。对于 ESC 键,需要自己重载 CDialog 类的 PreTranslateMessage 函数,当发现是 ESC 键的时候,过滤掉这个消息或者是替换掉这个消息。

以下是简单的代码示例

2.1 [方法1]

可以先重载OnOK函数

void CTestDlg::OnOK()
{//里面什么也不写
}

然后重载 PreTranslateMessage 函数,把 ESC 键的消息,用RETURN 键的消息替换,这样,按 ESC的时候,也会执行刚才的OnOK 函数,这样问题就可以解决了

BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE){pMsg->wParam = VK_RETURN;//将ESC键的消息替换为回车键的消息,这样按ESC的时候//也会去调用 OnOK函数,而OnOK什么也不做,这样ESC也被屏蔽}return CDialog::PreTranslateMessage(pMsg);
}

2.2 [方法2]

直接在重载的 PreTranslateMessage函数中屏蔽回车和 ESC的消息,和以上方法大同小异

BOOL CxxxDlg::PreTranslateMessage(MSG* pMsg)
{if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE) return TRUE; if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) return TRUE;elsereturn CDialog::PreTranslateMessage(pMsg);
}
http://www.dtcms.com/wzjs/36695.html

相关文章:

  • 网站建设教程网成都疫情最新情况
  • 政府做网站要什么资质网络平台推广有哪些渠道
  • 用个人电脑做网站服务器网站制作需要多少钱
  • 家乡网站建设策划案免费外链代发平台
  • 小学学校网站建设情况nba最新资讯
  • 开发公司申请办理公共维修资金申请书福州网站优化
  • 郑州的网站建设公司企业模板建站
  • 漂亮的网站改版中 html代码怀来网站seo
  • 网站上截小屏幕 怎么做代发百度关键词排名
  • 没网站可以做百度推广吗永久免费的电销外呼系统
  • 客户关系管理心得体会独立站seo怎么做
  • 网站里的团队建设范本重庆网络推广公司
  • 万能素材库视频windows7优化大师
  • 成都自助建站软件by网站域名
  • 房屋在线设计网站外链怎么做
  • 网站建设老李教学网站seo教学
  • 公司网站建设意见征集昆明seo技术培训
  • 旅游投资公司网站建设ppt模板北京seo收费
  • 做网站一屏是多大网站推广的平台
  • 旅游网站 div css 模板下载北京优化推广公司
  • 赌博网站游戏怎么做青岛百度推广seo价格
  • 外部网站可以做链接到淘宝吗网站优化推广软件
  • 加盟的网站建设线上营销推广方式都有哪些
  • mac用什么软件做网站编程培训班学费一般多少钱
  • 百度网站是怎么做的优秀软文营销案例
  • 郑州网站建设技术支持大数据培训机构排名前十
  • 常州网站建设公司机构网络营销运营
  • 网站天天做收录有效果吗百度官网下载安装到桌面上
  • 网站建设要买哪些软件电子商务营销方法
  • 建网站-湛江市优化营商环境个人心得