zoukankan      html  css  js  c++  java
  • Win32-API: 终于能正常的捕获焦点事件: WM_COMMAND、BN_SETFOCUS、EN_SETFOCUS

    学习和使用win32-api来写窗口程序算算也有二三年了。

    以前有个需求,想捕获控件的焦点事件(SETFOCUS、 KILLFOCUS),我一直认为应该捕获 WM_SETFOCUS 和 WM_KILLFOCUS。

    当然一直都没有捕获到 WM_SETFOCUS 和 WM_KILLFOCUS。

    今天无意发现一个关键词: BN_SETFOCUS,然后顺藤摸瓜...,终于搞明白了一切:

    如果想捕获控件的焦点使用,应该在 WM_COMMAND 中处理:

    比如处理Edit控件的焦点事件:

    case WM_COMMAND:

    {

        if(HIWORD(wParam) == EN_SETFOCUS || HIWORD(wParam) == EN_KILLFOCUS)

        {

            printf("---------------edit ");

         }

        break;

    }

    如果处理Button控件的焦点事件:  

    (这里需要注意一点,button控件在创建时必须指定一个样式: BS_NOTIFY,才能在WM_COMMAND中捕获到焦点事件,相关资料: http://blog.csdn.net/hellosijian/article/details/6615295)

    (combo控件不用设置 BS_NOTIFY)

    case WM_COMMAND:

    {

        if(HIWORD(wParam) == BN_SETFOCUS || HIWORD(wParam) == BN_KILLFOCUS)

        {

            printf("---------------edit ");

         }

        break;

    }

    捕获Edit控件的Change事件:

    case WM_COMMAND:

    {

        if(HIWORD(wParam) == EN_CHANGE)

        {

            printf("---------------edit ");

         }

        break;

    }

    2014-09-26

  • 相关阅读:
    你应该了解Nginx的7个原因
    linux 中php以及nginx的重启命令
    HTTP 长连接和短连接
    git常用命令
    Linux 防火墙开放特定端口 (iptables)
    redis配置文件相关
    关于解决emoji表情的存储
    文件内容统计——Linux wc命令
    Git 服务器搭建
    关于微信二次分享,描述变链接的解决方法(一)----文档说明
  • 原文地址:https://www.cnblogs.com/personnel/p/4585082.html
Copyright © 2011-2022 走看看