見網上有關於爲何SPY++不能獲得ShowMessage創建的消息框內容的疑問。
查找相關線索,通過對ShowMessage的跟蹤,發現:
1)ShowMessage顯示出的消息框中的TEXT不來自於子控件
2)ShowMessage實質上調用CreateMessageDialog
3)而CreateMessageDialog內部是利用了DrawText(A/W)輸出的文字
結論:如果要截取TMessageForm類的窗口內容需要攔截DrawTextA或DrawTextW。
lpString就是消息框中顯示的內容。