zoukankan      html  css  js  c++  java
  • 根据获取的窗口句柄遍历窗口Edit控件

    网上说遍历窗口控件有两种方法:
    1),使用EnumChildWindows,没有深究,
    2),使用::FindWindowEx和GetWindow组合
    下面只说第二种方法,
    首先根据标题获取窗口的句柄,
    HWND hWnd=::FindWindow(NULL,“zhang001”);
          findwindow原型:
       FindWindow(
          lpClassName,        {窗口的类名}
          lpWindowName: PChar {窗口的标题}
        ): HWND;              {返回窗口的句柄; 失败返回 0}
    根据窗口句柄获取窗口上的一个Edit控件,
    HWND hChild = ::FindWindowEx(hWnd,NULL,_T("Edit"),NULL);
    //FindWindowEx 比 FindWindow 多出两个句柄参数:
    FindWindowEx(
      Parent: HWND;     {要查找子窗口的父窗口句柄}
      Child: HWND;      {子窗口句柄}
      ClassName: PChar; {}
      WindowName: PChar {}
    ): HWND;
    {
    如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口;
    如果  是 HWND_MESSAGE, 函数仅查找所有消息窗口;
    子窗口必须是 Parent 窗口的直接子窗口;
    如果 Child 是 0, 查找从 Parent 的第一个子窗口开始;
    如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口.
    }
    这样可以获取窗口上的第一个Edit控件,第几个控件应该是以ID的大小编号的
    
    
    要根据第一个Edit控件找到下一个Edit控件,使用GetWindow。
    Getwindow的函数原型如下:
    函数原型:HWND GetWindow(HWND hWnd,UNIT nCmd);
     
      参数:
     
      hWnd:窗口句柄。要获得的窗口句柄是依据nCmd参数值相对于这个窗口的句柄。
     
      nCmd:说明指定窗口与要获得句柄的窗口之间的关系。  
    
    GetWindow()具体的使用方法见:http://blog.163.com/sdzhangyuyin@126/blog/static/1384137482014684254551/
    hChild = ::GetWindow(h,GW_HWNDNEXT);//获取窗口的下一个控件
    
    
    HWND hwndChild=::GetWindow(m_hWnd,GW_CHILD); //列出所有控件   
     while(hwndChild)   
     {   
      .....
      .....
      hwndChild=::GetWindow(hwndChild, GW_HWNDNEXT);   
     }
    
  • 相关阅读:
    Spark2.0机器学习系列之12: 线性回归及L1、L2正则化区别与稀疏解
    Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
    mysql 5.7.16多源复制
    Windows版 mysql 5.7.16安装
    一分钟经理人
    转 spring官方文档中文版
    MySQL执行计划 EXPLAIN参数
    sql 转 markdown
    Linux下安装MySQL5.6
    MyBatis完全使用指南
  • 原文地址:https://www.cnblogs.com/gaobo543013306/p/7819306.html
Copyright © 2011-2022 走看看