CListBox * birthplace=(CListBox *)GetDlgItem(IDC_LIST1);这句话什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:39:55
这是初始化list控件的一句语句
clistbox后面的*是什么?
=后面的括号又表示什么意思?
括号里的clistbox*又是什么意思?

CListBox * birthplace
是说birthplace是CListBox类型的指针

括号里的clistbox*是将GetDlgItem的返回值做强制类型转换,转换成CListBox类型的指针,
因为GetDlgItem的返回值是 void 即无类型的

CListBox * birthplace=(CListBox *)GetDlgItem(IDC_LIST1);
就是获取标识符 IDC_LIST1 所对应的列表框控件指针赋值给 CListBox 类型的指针变量 birthplace

这是MFC 获取控件指针的方法GetDlgItem的标准用法

CListBox * birthplace=(CListBox *)GetDlgItem(IDC_LIST1);
1.第一个*表示 birthplace是指针,指向CListBox类型
2.(CListBox *)这是强制类型转换,将GetDlgItem(IDC_LIST1)返回的指针强制转换为CListBox型的指针。

总结:看起来你对C++的基础知识:指针、强制类型转换都不了解。因此建议你从基础的学起,直接上MFC有点吃力。