01. MFC中定位窗口6要素

1. MFC源码位置

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.25.28610\atlmfc\src\mfc

 

2.RegisterClass

2.1 打开FileLocator Pro程序,输入要搜索的内容和位置,搜索出很多匹配的,带有前缀或后缀。

 

 

 

 

 

2.1把选项改成“全字匹配”再尝试

 

 

 

 

 

 

 

 

 

2.3 搜索后发现只存在于wincore.cpp文件中,用vs2019打开wincore.cpp并在1432行下断点,成功断下

 

 

 

 

 

 

3.消息循环

3.1 继续用上述方法搜索DispatchMessage,结果不多,按↓键一个个看过去,FileLocator Pro程序会自动定位到匹配的文本并高亮,thrdcore.cpp看起来比较像。

 

 

 

 

 

 

 

 

 

 

 

3.2 用vs2019在181行下断点,确实断下了

 

 

 

 

 

3.3 回溯两层发现循环结构,下断点并F10,发现一直在循环,判断属于消息循环

 

 

 

 

4.CreateWindow

4.1 继续用此方法搜索CreateWindow,下断点发现没断下。

 

 

 

 

 

4.2 搜索CreateWindowEx,找到两个。都下断点,只有wincore.cpp里的会断下

 

 

 

 

 

5. ShowWindow和UpdateWindow

5.1 继续搜索其他关键字,结果很多,放弃此方法。直接F10跟进去,前两个断点看了都不是

 

 

 

 

 

5.2 第3个断点跟进去,观察函数名看那个比较像,此函数80行代码,结尾处找到了

 

 

 

 

 

 

 

 

6. WndProc

6.1 类图中选中CFileView,在OnCreate上下断点

 

 

 

 

 

6.2 回溯5次发现

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

对话框

1.CreateDialog

1.1 搜索结果CreateDialogIndirect比较像,下断点能断下。

 

 

 

 

 

1.2单步到此处程序运行起来

 

 

 

 

 

1.3 进去找到了消息循环和ShowWIndow

 

 

posted @ 2020-06-30 21:06  八转达人  阅读(231)  评论(0编辑  收藏  举报