zoukankan      html  css  js  c++  java
  • 【Demo 0033】遍历窗体中控件

    今天学习的内容在Demo032中基本上己学过了, 此例仅在Demo32基础上做了一点延伸。

    在上节中我们了解EnumchildWindows遍历桌面的子窗体, 本节使 用此函数来获取窗体中所有控件.

    一、代码演示

    //////////////////////////////////////////////////////////////////////////
    BOOL CALLBACK EnumChildWndProc(HWND hWnd, LPARAM lParam)
    {
        HWND hListbox = (HWND)lParam;
        if (NULL == hWnd)    return FALSE;

        if (NULL != hListbox && IsWindow(hListbox))
        {
            TCHAR szWndInfo[512]    = {0};
            TCHAR szWndTitle[256]    = {0};
            TCHAR szClsName[64]        = {0};

            GetWindowText(hWnd, szWndTitle, 256);
            GetClassName(hWnd, szClsName, 64);
            _stprintf(szWndInfo,
                      _T("´°¿Ú%08X ")
                      _T("\"%s\" ")
                      _T("%s ")
                      _T("%s"),
                      hWnd,
                      szWndTitle,
                      szClsName,
                      IsWindowVisible(hWnd) ? _T("Visible") : _T("Invisible"));
            SendMessage(hListbox, LB_ADDSTRING, 0, (LPARAM)szWndInfo);
        }

        return TRUE;
    }
    HWND hListbox    = GetDlgItem(hWnd, IDC_LSTWNDLIST);
    SendMessage(hListbox, LB_RESETCONTENT, 0, 0);

    HWND hParent = FindWindowEx(NULL, NULL, _T("Notepad"), NULL);
    EnumChildWindows(hParent, WndEnumProc, (LPARAM)GetDlgItem(hWnd, IDC_LSTWNDLIST));

    SetWindowText(GetDlgItem(hWnd, IDC_BTNDATAREAD), _T("Refresh"));

    TCHAR szTmp[128];
    DWORD dwcount = SendMessage(GetDlgItem(hWnd, IDC_LSTWNDLIST), LB_GETCOUNT, 0, 0);
    _stprintf(szTmp, _T("size: %d"), dwcount);
    OutputDebugString(szTmp);

         本例以Notepad 窗体为目标, 通过EnumChildWindows 获取NotePad中所有的控件

    二、显示结果

         image

        运行后发现NodePad 有两个控件1. Edit 2. statusbar  且不可见

    演示代码

  • 相关阅读:
    【java】一种自动生成数据库文档的方法
    sublime vintage mode 按住一个键(比如 j)不会重复的问题
    SQL Service服务更换帐户后无法启动的情况(Security 4625 Type 5)
    隐藏的计划任务运行,导致账户被锁的调查方法
    nodejs 热更新页面
    数组转tree arrToTree
    compose函数
    react 类组件的生命周期
    qiankun 微应用demo
    application 'xxx' died in status LOADING_SOURCE_CODE: [qiankun] You need to export lifecycle functions in xxx entry
  • 原文地址:https://www.cnblogs.com/ztercel/p/2152612.html
Copyright © 2011-2022 走看看