宇文成风VC技巧总结之防范按钮克星

转载请注明http://blog.csdn.net/daydayuplo

按钮克星激活我们的控件以及窗口一般采取的方式都是先获取窗口句柄,然后对窗口句柄调用EnableWindow函数。

事实上我们的窗口过程收到WM_ENABLE这个消息的时候已经晚了,因为EnableWindow函数已经调用过了,我们才收到这个消息。我这个办法是个补救的办法,我也不知道是否有更好的办法,目前是奏效了,废话不多说,直接上代码;

重载窗口过程,加上下面的代码;

LRESULT CButtonST::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
 // TODO: Add your specialized code here and/or call the base class

if (message == WM_ENABLE)
 {

if (!m_bMyAction)
  {
   LRESULT ret = ::EnableWindow(m_hWnd,0);
   Invalidate();
   return ret;
   
  }
  else
  {
   
   LRESULT ret =  ::EnableWindow(m_hWnd,BOOL(wParam));
   m_bMyAction = FALSE;
   Invalidate();
   return ret;
  }

}
 
 return CButton::WindowProc(message, wParam, lParam);
}

代码很清楚了,就是受到WM_ENABLE消息时对行为做判断,是否是我们的成员调用的,要完成这个功能必须加上一个成员变量m_bMyAction ,如果是,我们允许ENABLE,如果不是,不好意思,恢复被激活的窗口为未激活状态;

第二步,重载EnableWindow,如果是我们的对象调用,那就是标记为自己的行为吧,这样就可以自由的激活与禁用了;

BOOL  CButtonST::EnableWindow(BOOL bEnable)
{

if (bEnable)
 {
  m_bMyAction = TRUE;
 }
 
 
 return CButton::EnableWindow(bEnable);

}

这样就可以了,我测试通过了,如果有更好的办法,请留言告知,谢谢。

如何防止按钮克星激活我们的按钮相关推荐

  1. C++ 通过查找按钮句柄激活另外程序按钮 窗口函数EnumchildWindow,EnableWindow,setwindowpos用法

    #include<iostream> #include<cstring> #include<Windows.h>//注意程序要用管理员权限打开,否则如果要查找的程序 ...

  2. 超级灰色按钮克星1.4.1309.12

    软件简介:传统的超级灰色按钮克星只能激活传统Windows平台下的按钮.本软件不仅可以激活传统Windows平台下的软件,也可以激活DOTNET平台下的软件. 新版本支持最新Win8 x86/x64操 ...

  3. 按钮项 —【按钮的激活】

    <button type="button" class="btn btn-primary active">Primary button</bu ...

  4. ListView自定义视图中对Button按钮实现仅允许一个按钮处于开启状态

    2019独角兽企业重金招聘Python工程师标准>>> Android项目迭代,之前使用下拉框Spinner被替换成ListView,相应的实现也比之前更加复杂了,根据美工给出的界面 ...

  5. 在GridView中添加按钮后,如何触发按钮的各种事件?

    //在GridView中添加按钮后,如何触发按钮的各种事件? 1.在GridView的"编辑列"属性窗口中,增加新的Botton列. 2.然后再该窗口右边属性中,将外观项下的But ...

  6. [html] 使用button当按钮和使用div当按钮有什么区别?

    [html] 使用button当按钮和使用div当按钮有什么区别? button具有默认样式 button在表单中具有默认的提交事件 button具有disabled属性可以禁用 个人简介 我是歌谣, ...

  7. 单选按钮_PerlTk教程之按钮Button、复选按钮Checkbutton、单选按钮Radiobutton(附完整代码)...

    <Perl-Tk教程之按钮Button.复选按钮Checkbutton.单选按钮Radiobutton>Perl-Tk中有三种不同形式的按钮组件可供选择,它们分别是按钮(Button), ...

  8. Java事件侦听器函数_SWT 计算器 按钮事件监听 获取按钮text值

    用swt插件做计算器,监听所有按钮.通过按钮text值判断哪个按钮被点击,如"0"按钮被点击,就在text框里加个0.现在问题是怎样在监听函数里得到button的text值.10个 ...

  9. MFC开发IM-自绘按钮控件,给按钮设置背景图片

    MFC 基础知识:对话框背景添加图片和按钮Button添加图片 很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回 ...

最新文章

  1. 剑指offer:平衡二叉树
  2. Windows CE(C#)嵌入式应用开发pdf
  3. 数学学得好是一种怎样的体验?
  4. cjson 对象是json数组型结构体_C语言cJSON库的使用,解析json数据格式
  5. DrawerLayout和NavigationView的简单实用
  6. ubuntu20.04 下查看(改变)本地端口开放情况,开启和关闭防火墙
  7. [转载]AdapterView.OnItemClickListener
  8. 计算机软件的英文简称,计算机常见英文缩写.docx
  9. 《代码整洁之道》:整洁代码有意义的命名
  10. 在centos下安装使用busybox工具箱
  11. IDEA默认KeyMap映射快捷键
  12. lookup无序查找_查找引用之王——Lookup函数实用技巧解读!
  13. 基于Nginx日志的自动封异常ip和解封脚本
  14. ArcMap进行线符号制作
  15. DolphinScheduler征稿 —手把手教你如何使用小豚调度
  16. NRF51822---开发板介绍(连载1)
  17. 电子面单打印平台对接-快递鸟
  18. 【翻译】数据资产价值评估
  19. android360浏览器卸载,三款主流安卓浏览器横评!删掉APP全靠它?
  20. Centos 7 下joomla简体中文版安装

热门文章

  1. DNS服务器优化的几种方式
  2. Python学习总结
  3. Html中的边框弧边,CSS边框属性一---border-radius
  4. SpringBoot打成jar包时访问templates下的html出错或访问不到
  5. 双屏是否代表未来 — 灵耀 X2 Pro 产品专访
  6. FaceID调用的几个注意点
  7. kakaotalk语音验证码,已读怎么破?KakaoTalk超实用的隐藏功能,真的太好用了!
  8. 我开发了一个基于 Egg.js 的后端脚手架
  9. Google Earth选项中的重要设置
  10. svipfuli.php,【www.svipfuli3.com】下载 - 面包树