AfxMDIFrame表示MDI主窗口
AfxControlBar表示标准控制条
AfxOleControl表示OLE控件(OLE: Object Linking and Embedding,对象连接与嵌入)
而形如Afx:1*:8的窗口,其实是一些动态产生的窗口,这些窗口是由Windows程序在初始化的时候调用AfxRegisterWndClass注册的。
其中,AfxRegisterWndClass函数是MFC全局函数, AfxRegisterWndClass的函数原型:
LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle,
HCURSOR hCursor, HBRUSH hbrBackground, HICON hIcon)
参数1指定窗口类风格;
参数2、3、4分别指定该窗口类使用的光标、背景刷、像标的句柄,缺省值是0。
此函数根据窗口类属性动态地产生窗口类的名字,然后,判断是否该类已经注册,是则返回窗口类名;否则用指定窗口类的属性(窗口过程指定为缺省窗口过程),调用AfxRegisterCalss注册窗口类,返回类名。
这些动态产生的窗口类名字由以下几部分组成(包括冒号分隔符):
如果参数2、3、4全部为NULL,则由三部分组成。
“Afx”+“:”+模块实例句柄”+“:”+“窗口类风格”
否则,由六部分组成:
“Afx”+“:”+模块实例句柄+“:”+“窗口类风格”+“:”+光标句柄+“:”+背景刷句柄+“:”+像标句柄。比如:“Afx:400000:b:13de:6:32cf”。
一般AfxRegisterWndClass函数在MFC注册主边框或者文档边框“窗口类”时会被调用。
所以,下次见到这些吓人的tag的时候不要惊讶,他们只是一些Windows窗口类型而已。
文章来源于领测软件测试网 https://www.ltesting.net/