需求:实现张3、李4、王五 3 人的课程选择,并将选课结果提交到列表框中显示。函数
实现过程:orm
一、创建对话框mfc工程。对象
二、添加控件blog
tab 顺序 控 件 类 型 控件 ID
1 Button IDC_ADD
2 Button IDCANCEL
3 Group Box IDC_STATIC
4 Radio Button IDC_RADIO1
5 Radio Button IDC_RADIO2
6 Radio Button IDC_RADIO3
7 Group Box IDC_STATIC
8 Check Box IDC_CHECK1
9 Check Box IDC_CHECK2
10 Check Box IDC_CHECK3
11 Static Text IDC_STATIC
12 List Box IDC_LIST1
图片
(1)按钮 1 采用前面介绍过的位图按钮类 CButtonBitmap,这就须要载入位图资源。在资源
资源视图窗口里添加“Bitmap”资源,而后再载入两幅 Bmp 图片,这两幅图片分别显示按钮
位图和按钮按下时的位图,其 ID 分别为“IDB_ADD1”和“IDB_ADD2”。it
按钮1属性设置“owner draw”为“true”。io
其余:变量
MFC中control变量与value变量的区别date
control型变量是这个控件所属类的一个实例(对象)能够经过这个变量来对该控件进行一些设置。control型变量能够得到控件的实例,经过这个变量,你能够操纵控件。而value只是用来传递数据,不能对控件进行其它的操做。value型变量仅仅能够得到该控件的public型变量。 若是你添加了一个m_CtrlEdit的control型变量你能够调用控件支持的全部函数,如:m_CtrlEdit.GetStyle(...) 得到控件的输入内容或者说文本内容:CString str_name;m_CtrlEdit.GetWindowText(str_name);MessageBox(str_name,"提示",0); 而value型变量通常用于向控件传递数据,如:变量为CString 类型的 m_Str m_Str="hustwjz"; UpdateData(FALSE); //能够向控件传递数据 UpdateData(TRUE); //能够从控件得到数据 得到输入数据后能够进行相应操做.如下是写文件用到的,把输入的内容写入文件 UpdateData(TRUE); student.age=m_age; strcpy(student.name,m_char); CString fPath; fPath=GetAppPath(); IniFileHandle->m_FileName.Format(_T("%s"),fPath+_T("student")); IniFileHandle->OpenFile(1); IniFileHandle->Serialize(student); IniFileHandle->CloseFile(); 可使用成员变量来代替某个控件,当控件发生变化时,该成员变量的值也发生变化;ClassWizard增长成员变量的时候,选择value类型能够建立一个包含由用户来输入控件文本和控件状态的成员变量;选择Control类型,咱们能够对这个控件直接进行访问; Value 就是一个变量,control 就是一个控件。主要的区别也就是变量和控件之间的区别,虽然他们实质上都是同样的。 但是选择 Value ,MFC 会把控件的内容对应到一个变量上。除非你用其余API取得这个 控件进行操做,不然,就是一个变量而已。主要的用途是 UpdateData,进行数据读写。而做为控件,就是把这个东西直接对应到了一个控件对象上去,好比 CEdit 对象。你能够直接用这个对象来进行操做。