中南民族大学 计算机科学学院
实验报告
课 程 Windows程序设计 年 级 专 业
学 生 学 号 指导老师
实验一
实验标题:按钮控件使用方法
一、实验目的: 学会使用按钮控件的使用方法。 二、实验内容及步骤: 1. 新建项目,设置对话框如下所示:
2.双击头文件“ankjDlg.h”,在类构造函数class CankjDlg : public CDialog中定义 public:
CButton game1,game2,game3,game4,game5,game6; CButton addr1,addr2,addr3,addr4;
3.双击文件“ankjDlg.cpp”,在void CankjDlg::DoDataExchange(CDataExchange* pDX)中添加ID与变量之间的映射。
DDX_Control(pDX, IDC_RADIO1, addr1); DDX_Control(pDX, IDC_RADIO2, addr2); DDX_Control(pDX, IDC_RADIO3, addr3); DDX_Control(pDX, IDC_RADIO4, addr4); DDX_Control(pDX, IDC_CHECK1, game1); DDX_Control(pDX, IDC_CHECK2, game2); DDX_Control(pDX, IDC_CHECK3, game3); DDX_Control(pDX, IDC_CHECK4, game4); DDX_Control(pDX, IDC_CHECK5, game5); DDX_Control(pDX, IDC_CHECK6, game6);
4.在文件“ankjDlg.cpp”的BOOL CankjDlg::OnInitDialog()中的“// TODO: 在此添加额外的初始化代码”后面添加初始化代码:
this->addr1.SetCheck ( BST_CHECKED ) ;
this->game1.SetCheck ( BST_CHECKED ) ; this->game2.SetCheck ( BST_CHECKED ) ; this->game3.SetCheck ( BST_CHECKED ) ; this->game4.SetCheck ( BST_CHECKED ) ; this->game5.SetCheck ( BST_CHECKED ) ; this->game6.SetCheck ( BST_CHECKED ) ;
5. 双击“确定”按钮
CString szMsg ;
szMsg += L\"您的所在地:\" ;
,添加代码:
if ( this->addr1.GetCheck () == BST_CHECKED )
szMsg += L\"北京\\n\" ; szMsg += L\"上海\\n\" ; szMsg += L\"厦门\\n\" ; szMsg += L\"杭州\\n\" ;
else if ( this->addr2.GetCheck () == BST_CHECKED ) else if ( this->addr3.GetCheck () == BST_CHECKED ) else if ( this->addr4.GetCheck () == BST_CHECKED ) szMsg += L\"您的兴趣爱好:\" ;
if ( this->game1.GetCheck() == BST_CHECKED )
szMsg += L\"体育运动\" ; szMsg += L\"影视娱乐\" ; szMsg += L\"黑客技术\" ; szMsg += L\"旅游观光\" ; szMsg += L\"休闲棋牌\" ; szMsg += L\"网络游戏\" ;
if ( this->game2.GetCheck() == BST_CHECKED ) if ( this->game3.GetCheck() == BST_CHECKED ) if ( this->game4.GetCheck() == BST_CHECKED ) if ( this->game5.GetCheck() == BST_CHECKED ) if ( this->game6.GetCheck() == BST_CHECKED ) this->MessageBox ( szMsg, L\"您的选择\" ) ;
三、调试及结果:
①调试的初始界面:
②选择后的输出:
实验心得:
实验二
实验标题:组合框
一、实验目的: 了解组合框的概念,并掌握组合框的概念。 二、实验内容及步骤: 1.新建项目,设置对话框如下所示
注:①.在编辑右边的组合框时,右击该组合框,单击“属性”,在type选项中把默认的“Dropdown”改为“Drop List”。
②.在编辑当前选择下的两个示例编辑框时,右击该编辑框,单击“属性”,把“Read Only”选择为“true”。 2.双击zuhekuangDlg.h头文件,并定义水果名称、当前水果名称和组合框对象。 public:CString szFruitName;
CString
szCurName,szCurName2; MyComboBox,MyComboBox2;
CComboBox
3.双击组合框1
if ( nCurSel != LB_ERR ) {
,添加代码。
int nCurSel = this->MyComboBox.GetCurSel () ;
this->MyComboBox.GetLBText(nCurSel, this->szCurName) ; this->UpdateData ( FALSE ) ; }
4.双击组合框2,添加代码。
int nCurSel = this->MyComboBox2.GetCurSel () ; if ( nCurSel != LB_ERR ) {
this->MyComboBox2.GetLBText(nCurSel, this->szCurName2) ; this->UpdateData ( FALSE ) ; } 在
void CzuhekuangDlg::DoDataExchange(CDataExchange*
pDX)
函数体内中
5.添加ID和变量之间的映射。
CDialog::DoDataExchange(pDX);的后面添加如下代码:
DDX_Control(pDX, IDC_COMBO1, MyComboBox); DDX_Text(pDX, IDC_EDIT1, szFruitName); DDX_Text(pDX, IDC_EDIT2, szCurName); DDX_Control(pDX, IDC_COMBO2, MyComboBox2); DDX_Text(pDX,IDC_EDIT3,szCurName2);
其中DDX_****(固定为PDX,添加各个编辑框的ID号,自己新定义的变量)。 如果没映射,或映射不正确,在调试时会出现如下提示框;
6.进行初始化:
即双击zuhekuangDlg.cpp,在BOOL CzuhekuangDlg::OnInitDialog()函数体内的“// TODO: 在此添加额外的初始化代码”的后面添加代码。代码如下: this->MyComboBox.AddString ( L\"苹果\" ) ;
this->MyComboBox2.AddString ( L\"苹果\" ) ; this->MyComboBox2.AddString ( L\"香蕉\" ) ; this->MyComboBox2.AddString ( L\"西瓜\" ) ; this->MyComboBox2.SetCurSel ( 0 ) ; this->OnCbnSelchangeCombo2 () ; 7.为“添加”按钮添加代码。
this->MyComboBox.AddString ( L\"香蕉\" ) ; this->MyComboBox.AddString ( L\"西瓜\" ) ; this->MyComboBox.SetCurSel ( 0 ) ; this->OnCbnSelchangeCombo () ;
双击“添加”按钮元件,添加如下代码
if ( this->szFruitName.IsEmpty() == TRUE ) this->MessageBox ( L\"请输入水果名称\", L\"Error\" ) ; else {
this->MyComboBox.AddString ( this->szFruitName ) ; this->MyComboBox2.AddString ( this->szFruitName ) ; }
双击最底下的编辑框,添加如下代码:
this->UpdateData();
8.实时更新输入文本。
如果没有此代码段,每次按“添加”按钮会出现:
三、实验调试与结果:
四、实验心得
:
实验三
实验标题:模拟键盘消息
一、实验目的
学会如何使用Postmassage和keybd_event来模拟键盘信息。 1.新建项目,设置对话框如下所示 二、实验内容和步骤:
2.双击按钮“模拟↑键”添加代码: this->PostMessage ( WM_KEYDOWN, VK_UP, 0 ) ;
双击按钮“模拟↓键”添加代码:
this->PostMessage ( WM_KEYDOWN, VK_DOWN, 0 ) ; this->PostMessage ( WM_KEYDOWN, VK_LEFT, 0 ) ; this->PostMessage ( WM_KEYDOWN, VK_RIGHT, 0 ) ; keybd_event ( VK_LWIN, 0, 0, 0 ) ; keybd_event ( 'R', 0, 0, 0 ) ;
keybd_event ( 'R', 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_LWIN, 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_LWIN, 0, 0, 0 ) ; keybd_event ( 'U', 0, 0, 0 ) ;
keybd_event ( 'U', 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_LWIN, 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_CONTROL, 0, 0, 0 ) ; 双击按钮“模拟←键”添加代码: 双击按钮“模拟→键”添加代码: 3.双击按钮“Win+R”添加代码:
双击按钮“Win+U”添加代码:
双击按钮“Win+Shift”添加代码:
keybd_event ( VK_SHIFT, 0, 0, 0 ) ;
keybd_event ( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_MENU, 0, 0, 0 ) ; keybd_event ( VK_TAB, 0, 0, 0 ) ; Sleep ( 1000 ) ;
//切换应用程序窗口停留时间,单位为ms
keybd_event ( VK_TAB, 0, KEYEVENTF_KEYUP, 0 ) ; keybd_event ( VK_MENU, 0, KEYEVENTF_KEYUP, 0 ) ;
双击代码“Alt+Tab”添加代码:
三、调试与结果:
实验心得:
实验四
实验标题:创建模态对话框
一、实验目的: 学习并掌握如何使用MFC的CDialog实现模态对话框。 二、实验内容及步骤: 1.新建项目,名称为mtdhk,设置对话框如下所示
2.在“资源视图”下,右击“Dialog”,在显示的菜单中选中“插入Dialog(E)”,并设置对话框如下所示:
3.右击新建立的对话框,在菜单中选中“在类名中输入“Cmydlg”。
”弹出如下对话框,
4.双击
列代码: Cmydlg dlg;
dlg.DoModal();
三、实验调试及结果:
,显示最初的对话框,双击“创建模态对话框”按钮,添加下
四、实验心得:
因篇幅问题不能全部显示,请点此查看更多更全内容