今天碰到了GetDlgItem(ID)的时候出错,然后在网上找了下,发现该函数返回的指针可能是临时的,容易出现调用出错,目前还不知道真正的原因。
以下是网友的回答:
1:
这是书上的一段程序(《Window程序设计》),其中有一段话不是很理解,来问一下:
“这个程序之所以有效只在于MFC提供了特别的支持。因为由GetDlgItem返回CWnd指针,接着把该指针变成CListBox指针,并通过改变后的指针调用CListBox,这种编程方法在某些场合中虽拙劣但尚可用,在某些场合中则很危险。实际上,在某些情况下,这种方法根本不起作用。”
“这个程序之所以有效只在于MFC提供了特别的支持。因为由GetDlgItem返回CWnd指针,接着把该指针变成CListBox指针,并通过改变后的指针调用CListBox,这种编程方法在某些场合中虽拙劣但尚可用,在某些场合中则很危险。实际上,在某些情况下,这种方法根本不起作用。”
不过还是不知道上述那段话的真正意思及为什么GetDlgItem执行出错。