见网上有关于为何SPY++不能获得ShowMessage创建的消息框内容的疑问。
查找相关线索,通过对ShowMessage的跟踪,发现:
1)ShowMessage显示出的消息框中的TEXT不来自于子控件
2)ShowMessage实质上调用CreateMessageDialog
3)而CreateMessageDialog内部是利用了DrawText(A/W)输出的文字
结论:如果要截取TMessageForm类的窗口内容需要拦截DrawTextA或DrawTextW。
lpString就是消息框中显示的内容。