MFC学习之List Control的使用
今天学习的是类似于excel表的控件List Control,MFC的制表不能像excel表那样子直接在上面输入的,只能借助函数对里面的各个选项进行填写。今天我们会结合子对话框的方式实现对List Control里面进行添加项。本次工程最后实现效果的是用户点击添加按钮,弹出一个录入信息的对话框,输入后点击点击确定把信息写入到List Control控件中,具体的步骤如下:
A、在主对话框的资源视图里面拉入List Control这个控件,然后根据需要表的样式对表的属性进行设置。把ID号改好,并选中该控件右键添加变量,给该控件添加一个pubic的变量,变量保存在主窗口的文件中。
B、回到对话框的资源视图里面添加一个子对话框资源,并且在上面设计好你需要的效果。例如加入编辑控件,按钮控件等。并修改下子对话框的ID号,命一个有意义的字符串。
C、在子对话框上点击右键添加类,设置好自动生成关于该子对话框的类文件。
D、然后在主对话框的添加按钮里面实例化一个子窗口对象,并利用this指针把当前主窗口的指针传递到子窗口上,这样子子窗口即可获得访问主窗口的权限。
E、最后就根据需要调用各种插入接口函数,
例如:CString strWindowName = L"",strWindowClass = L"";
GetDlgItemText(IDC_EDIT_NAME,strWindowName);//获取用户输入的内容
GetDlgItemText(IDC_EDIT_CLASS,strWindowClass);
GetDlgItemText(IDC_EDIT_NAME,strWindowName);//获取用户输入的内容
GetDlgItemText(IDC_EDIT_CLASS,strWindowClass);
int nRow = m_MainDialog->m_ListInfo.InsertItem(nNowMaxRow,strWindowName);//插入的是某行的首列位置,返回的是该行的位置。
m_MainDialog->m_ListInfo.SetItemText(nRow,1,strWindowClass);//写入某行第二列内容信息
m_MainDialog->m_ListInfo.SetItemText(nRow,1,strWindowClass);//写入某行第二列内容信息
总结:本次练习涉及到的关键技术点如下
1、子窗口的创建,在资源视图设计里面好,最后一定要添加一个子窗口类,直接在子窗口右键然后点击选择“添加类”,即可生成两个文件。
2、弹出子窗口(模态对话框),在主窗口程序中在需要的地方实例化子窗口类,并调用类方法显示对话框,模态对话框。
3、子窗口如何操作父窗口的控件,关键是子窗口中可以拿到父窗口this指针,可以在子窗口类中利用一个前置声明设计一个获得父窗口指针方法,然后调用的时候传参this即可得到父窗口的操作权限
4、如果需要程序对某个控件进行相关的操作,则可以添加变量(本质就是实例化对象)
2、弹出子窗口(模态对话框),在主窗口程序中在需要的地方实例化子窗口类,并调用类方法显示对话框,模态对话框。
3、子窗口如何操作父窗口的控件,关键是子窗口中可以拿到父窗口this指针,可以在子窗口类中利用一个前置声明设计一个获得父窗口指针方法,然后调用的时候传参this即可得到父窗口的操作权限
4、如果需要程序对某个控件进行相关的操作,则可以添加变量(本质就是实例化对象)
最终效果如下: