spy++ 查看窗口类名

zhaoqingjie198603038 2010-11-10 08:12:55
1,首先我用vc++6.0写了基于dialog的程序,用spy++查看窗口类名看到是的整数且有(Dialog)字样,如图,而事实是我已经给这个dialog添加了类了。

2.而我用spy++查看其他应用程序的窗口,能显示出类名。如图:
请问这两者有什么区别,为什么?谢谢大家,帮我解决一下疑问。

...全文
523 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2010-11-11
  • 打赏
  • 举报
回复
::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wndMyClass); //取得对话框的窗口类属性
wndMyClass.lpszClassName = "MYTESTNAMEDlg"; //将类名改成自定义的类名
AfxRegisterClass(&wndMyClass);

这几句很关键。。。
ostling 2010-11-11
  • 打赏
  • 举报
回复
使用MFC的时候生成的对话框程序默认类名都是“#32770”,MFC 自己封装的。
如果要更改缺省类名,可以先修改资源文件,加入自己定义的类名。然后在APP调用在InitInstance()的时候,调用AfxRegisterClass ,注册自己的类名
1)修改rc文件
找到你的对话框定义,类似以下:
IDD_MY_DIALOG DIALOGEX 0, 0, 800, 600
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_APPWINDOW
CAPTION "MYDlg"
CLASS "MYTESTNAMEDlg" // 加入这行,自己定义类名
FONT 9, "宋体"


2)InitInstance()中增加以下代码:
WNDCLASS wndMyClass;
::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wndMyClass); //取得对话框的窗口类属性
wndMyClass.lpszClassName = "MYTESTNAMEDlg"; //将类名改成自定义的类名
AfxRegisterClass(&wndMyClass);
  • 打赏
  • 举报
回复
又学习了,呵呵。非常感谢楼上两位

65,176

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧