• 【Demo 0026】读取窗体类信息


    在上一节中我们练习了注册一个类,并通用此类实例化一个对象。 今天我们反过来学, 对于己实例化的窗体如何读取自身的注册信息,Window 同样提供了对应的方法。

    (一) 函数声明

        int GetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount );

         获取实例窗体类名    

         BOOL GetClassInfoEx(HINSTANCE hinst, LPCTSTR lpszClass, LPWNDCLASSEX lpwcx );

         获取进程中指定类信息

         BOOL GetClassInfo(HINSTANCE hInstance, LPCTSTR lpClassName, LPWNDCLASS lpWndClass );

         获取进程中指定类信息(与GetClassInfoEx不同之处在于WNDCLASSEX返回值多了icomsm值)

       

        这几个函数比较简单

        Code:  本例演示读取窗体的类名以及根据类名提取其他类信息

    WNDCLASSEX wcx    = {0};
    wcx.cbSize        = sizeof(wcx);
    TCHAR szClassName[256]    = {0};
    GetClassName(hWnd, szClassName, 256);
    if (GetClassInfoEx(GetModuleHandle(NULL), szClassName, &wcx))
    {
        TCHAR szClassInfo[1024];
        _stprintf(szClassInfo,
                  _T("ClassName:        %s\n")
                  _T("Style:            %d\n")
                  _T("class Extra:        %d\n")
                  _T("Wnd Extra:        %d\n")    
                  _T("Cursor:            0X%X\n")
                  _T("Icon:            %X\n")
                  _T("Background:        0X%0X\n")
                  _T("MenuName:        %s\n")
                  _T("Instance:        0X%X\n")
                  _T("WndProc:        0X%06X\n"),
                  wcx.lpszClassName,
                  wcx.style,
                  wcx.cbClsExtra,
                  wcx.cbWndExtra,
                  wcx.hCursor,
                  wcx.hIcon,
                  wcx.hbrBackground,
                  wcx.lpszMenuName,
                  wcx.hInstance,
                  wcx.lpfnWndProc);
        SetWindowText(GetDlgItem(hWnd, ID_LABINFO), szClassInfo);
        OutputDebugString(szClassInfo);
    }

    (二) 特别声明

       GetClassInfoEx 以及 GetClassInfo 在读取其他进行的窗体类信息会失败(在后面章节中我们再讲述)

    演示代码

  • 相关阅读:
    再见,我的二零一七
    Tomcat 源码分析(二)——Request处理全过程
    帅案之上——作为开发者的远见与卓识
    Tomcat 源码分析(一)——启动与生命周期组件
    从代码质量谈起
    Java设计模式(四)——再谈观察者模式
    你所不了解的五条面试忠告
    见微知著——从自定义类型的operator==说起
    编码、散列与加解密
    数据结构与算法(c++)——双缓存队列
  • 原文地址:https://www.cnblogs.com/ztercel/p/2141653.html
Copyright © 2020-2023  润新知