MFC 中GetDlgItem(ID)函数的问题!

2025-03-06 18:47:35
推荐回答(2个)
回答1:

“用哪个控件的指针指向GetDlgItem(IDC_LIST1)” 这个说法不准确。

GetDlgItem(IDC_LIST1) 这个函数获得的,是一个CWnd* 的窗口类指针,如果需要使用这个指针对控件进行操作,那么标准窗口操作(如:GetWindowText)是不需要强制类型转换的。如果操作是控件专有方法(如AddString),就要对指针进行强制转换,成为CListBox* 才能使用列表框类的专有方法(函数)。

回答2:

你要用哪个控件,就把它的控件ID填进GetDlgItem后面的括号里面。

所以,你的第一句:((CListBox*)GetDlgItem(IDC_LIST1))->AddString(" GUANG ZHOU ");是对的。

第二句:((CEdit*)GetDlgItem(IDC_LIST1))->AddString(" GUANG ZHOU ");是错的。