安康学院电子与信息工程学院实验报告
课程高级编程VC++ 实MFC应用程序设日期 2018.5.29 成绩 名称 验 计中的常用控件 名称 (一) 姓名 杨 旋 学号 2015024027 班级 15级计本1班 一、实验目的: 掌握利用MFC进行应用程序设计时,常用控件的基本方法。Windows 二、
实验题目内容及要求: 编写一个用于进行成绩计算的程序。具体要求如下:1.
成绩界面中显示五个裁判所给出的等级制成绩(每个裁判利用一组单选按钮进行打分,分为“优秀”、“良好”、“中等”、“及格”、“不及格”的档次),单击界面中的“计计算出百分制的平均成绩显示在界面中的一个文本框中,在计算时,每个档算”按钮之后, 次的成绩对应的百分制成绩为: 95分“优秀”—— “良好”——85分 75分“中等”—— 分“及格”——65 “不及格”——45分 可以进一步进行功能扩展。要求程序的运行界面自主设计,在完成上述基本功能
前提下,代码
CAboutDlg 獜摴晡?屨classCDialogEx : public #include{ #include ??灁汰捩瑡潩?栮:
#include??灁汰捩瑡潩?汄?屨public CAboutDlg();
#include慜硦楤污杯硥栮 AFX_DESIGN_TIME #ifdef
{ IDD = IDD_ABOUTBOX }; _DEBUG#ifdef enum #endif DEBUG_NEW new#define #endif
: protected1 / 15
, m_po5); IDC_RADIO21pDX, void DDX_Radio( virtual
); * pDX IDC_EDIT1, m_result); DoDataExchange(CDataExchangepDXDDX_Text(, : } protected() DECLARE_MESSAGE_MAP , };
(BEGIN_MESSAGE_MAPCMFCApplication4Dlg) CAboutDlg::CAboutDlg() : CDialogEx() (CDialogExIDD_ABOUTBOX) ON_WM_SYSCOMMAND() ON_WM_PAINT{ () ON_WM_QUERYDRAGICON}
, (IDC_RADIO1 ON_BN_CLICKED::OnBnClickedRadio1) CMFCApplication4Dlg&void
, (CAboutDlg::DoDataExchange(CDataExchange* IDC_RADIO6ON_BN_CLICKED::OnBnClickedRadio6) pDX) CMFCApplication4Dlg&, { (IDC_BUTTON1ON_BN_CLICKED::OnBnClickedButton1) CMFCApplication4Dlg); CDialogEx ::DoDataExchange(pDX&,
( } IDC_EDIT1ON_EN_CHANGE::OnEnChangeEdit1) CMFCApplication4Dlg&() CAboutDlgBEGIN_MESSAGE_MAP(, CDialogEx) END_MESSAGE_MAP END_MESSAGE_MAP() 消息处理程序 // CMFCApplication4Dlg 对话框// CMFCApplication4Dlg
::CMFCApplication4Dlg(CMFCApplication4Dlg::OnInitDialog() CMFCApplication4Dlg) * CWndpParent/*=NULL*/BOOL { :
CDialogEx::OnInitDialog();
(CDialogExIDD_MFCAPPLICATION4_DIALOG, ) pParent , m_po1(0)
& 0xFFF0) == , m_po2(0) IDM_ABOUTBOX((ASSERT IDM_ABOUTBOX, m_po3(0) );
< 0xF000); IDM_ABOUTBOX , m_po4(0) ( ASSERT , m_po5(0) * pSysMenu = CMenu , m_result(0) );
{ GetSystemMenu(FALSE) NULL (pSysMenu != m_hIcon = if{ (AfxGetApp()->LoadIcon); IDR_MAINFRAME bNameValid; } BOOL
strAboutMenu; void CString
bNameValid = ::DoDataExchange(CMFCApplication4Dlg CDatastrAboutMenu.) * ExchangepDXLoadString(IDS_ABOUTBOX); (bNameValid); { ASSERT
(!strAboutMenu.IsEmpty()) ); ::DoDataExchange(CDialogExpDXif {
DDX_Radio( , m_po1); IDC_RADIO1pDX, , m_po2); IDC_RADIO6, DDX_Radio(pDX
); pSysMenu->(, m_po3); IDC_RADIO11, pDXDDX_Radio( AppendMenuMF_SEPARATOR pDX DDX_Radio(IDC_RADIO16, , m_po4);
2 / 15
1) / 2; MF_STRING, pSysMenu-> AppendMenu(, strAboutMenu);
IDM_ABOUTBOXdc.DrawIcon(x, y, m_hIcon); } } }
else SetIcon(m_hIcon, TRUE ); { SetIcon(m_hIcon, FALSE);
::OnPaint(); CDialogExreturn TRUE; } } void}
UINT HCURSORCMFCApplication4Dlg::OnSysCommand() CMFCApplication4Dlg::OnQueryDragIcon() lParam, nIDLPARAM{ {
) IDM_ABOUTBOX returnstatic_cast
dlgAbout; CAboutDlg dlgAbout.DoModal(); x1,x2,x3,x4,x5; int }
elsevoid{ ::OnBnClickedRadio1() CMFCApplication4Dlg, CDialogEx::OnSysCommand({ nID ); lParam} switch (m_po1) } { case 0: x1 = 95;
::OnPaint() CMFCApplication4Dlg void; break 1: case{
(IsIconic()) x1 = 85; if { break ; 2:
dc( CPaintDC this);
case, SendMessage x1 = 75; ( WM_ICONERASEBKGND>(dc.GetSafeHdc()), ; breakWPARAMreinterpret_cast < 3: 0); case x1 = 65; break ; 4:
int cxIcon = case SM_CXICONx1 = 45; GetSystemMetrics(); ;
break cyIcon = int } SM_CYICONGetSystemMetrics(); } CRect rect;