MFC计算器
- 格式:pdf
- 大小:97.10 KB
- 文档页数:11
, m_cInNumber(0) { m_hIcon = AfxGetApp->LoadIcon(IDR_MAINFRAME); } void CCalcDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT, m_csEditText); } BEGIN_MESSAGE_MAP(CCalcDlg, CDialog) ON_WM_SYSCOMMAND ON_WM_PAINT ON_WM_QUERYDRAGICON //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BTNNUM0, &CCalcDlg::OnBnClickedBtnnum0) ON_BN_CLICKED(IDC_BTNNUM1, &CCalcDlg::OnBnClickedBtnnum1) ON_BN_CLICKED(IDC_BTNNUM2, &CCalcDlg::OnBnClickedBtnnum2) ON_BN_CLICKED(IDC_BTNNUM3, &CCalcDlg::OnBnClickedBtnnum3) ON_BN_CLICKED(IDC_BTNNUM4, &CCalcDlg::OnBnClickedBtnnum4) ON_BN_CLICKED(IDC_BTNNUM5, &CCalcDlg::OnBnClickedBtnnum5) ON_BN_CLICKED(IDC_BTNNUM6, &CCalcDlg::OnBnClickedBtnnum6) ON_BN_CLICKED(IDC_BTNNUM7, &CCalcDlg::OnBnClickedBtnnum7) ON_BN_CLICKED(IDC_BTNNUM8, &CCalcDlg::OnBnClickedBtnnum8)
// CCalcDlg 消息处理 BOOL CCalcDlg::OnInitDialog { CDialog::OnInitDialog; // 将“有关...”菜单项添加到系统菜单中 // IDM_ABOUTBOX 必须在系统命令范围内 ASSERT((IDM_ABOUTBOX & 0xFFF0) IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetMenu(FALSE); (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); (!strAboutMenu.IsEmpty) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框图标当应用主窗口不是对话框时框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外化代码 TRUE; // 除非将焦点设置到Control控件否则返回 TRUE }
// 实现 protected: HICON m_hIcon; // 生成消息映射
virtual BOOL _disibledevent=> protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP }; CAboutDlg::CAboutDlg : CDialog(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP
代码如下:
第部分(利用ClassWizard添加可不必手动修改)在CalcDlg.h中代码修改如下: // CalcDlg.h : 头文件 // #pragma _disibledevent=> // 对话框数据 enum { IDD = IDD_CALC_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
ON_BN_CLICKED(IDC_BTNNUM9, &CCalcDlg::OnBnClickedBtnnum9) ON_BN_CLICKED(IDC_BTNNUMRADIX, &CCalcDlg::OnBnClickedBtnnumradix) ON_BN_CLICKED(IDC_BTNOPADD, &CCalcDlg::OnBnClickedBtnopadd) ON_BN_CLICKED(IDC_BTNOPSUB, &CCalcDlg::OnBnClickedBtnopsub) ON_BN_CLICKED(IDC_BTNOPMULTI, &CCalcDlg::OnBnClickedBtnopmulti) ON_BN_CLICKED(IDC_BTNOPDIV, &CCalcDlg::OnBnClickedBtnopdiv) ON_BN_CLICKED(IDC_BTNOPEQUAL, &CCalcDlg::OnBnClickedBtnopequal) ON_BN_CLICKED(IDC_BTNCLEAN, &CCalcDlg::OnBnClickedBtnclean) END_MESSAGE_MAP
mfc计算器:MFC实现简单功能计算器
疯狂代码 / ĵ:http://VC/Article39924.html 第步:利用MFCAppWizard生成个基于对话框(本工程名为Calc)切换到Resource 在Dialog中 IDD_CALC_DIALOG上双击然后添Control控件按钮做好外观布局改好按钮ID和Caption; 第 2步:为Control控件按钮增加相应变量和事件响应; 第 3步:在CCalcDlg类中添加相应变量; 第 4步:对Control控件按钮事件响应做处理;
{ CDialog::OnPa; } } //当用户拖动最小化窗口时系统此取得光标显示 // HCURSOR CCalcDlg::OnQueryDragIcon { _cast<HCURSOR>(m_hIcon); }
void CCalcDlg::OnBnClickedBtnnum0 { // TODO: Add your control notication handler code here m_cInNumber='0'; UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum1 { // TODO: Add your control notication handler code here m_cInNumber='1'; UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum2 { // TODO: Add yourБайду номын сангаасcontrol notication handler code here m_cInNumber='2';
UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum3 { // TODO: Add your control notication handler code here m_cInNumber='3'; UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum4 { // TODO: Add your control notication handler code here m_cInNumber='4'; UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum5 { // TODO: Add your control notication handler code here m_cInNumber='5'; UpdateData; m_csEditTextm_cInNumber; UpdateData(FALSE); } void CCalcDlg::OnBnClickedBtnnum6 { // TODO: Add your control notication handler code here m_cInNumber='6';
void CCalcDlg::OnSysCommand(UINT nID, LPARAM lParam) { ((nID & 0xFFF0) IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal; } { CDialog::OnSysCommand(nID, lParam); } } // 如果向对话框添加最小化按钮则需要下面代码 // 来绘制该图标对于使用文档/视图模型 MFC 应用 // 这将由框架自动完成 void CCalcDlg::OnPa { (IsIconic) { CPaDC dc(this); // 用于绘制设备上下文 SendMessage(WM_ICONERASEBKGND, reerpret_cast<WPARAM>(dc.GetSafeHdc), 0); // 使图标在工作矩形中居中 cxIcon = GetMetrics(SM_CXICON); cyIcon = GetMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); x = (rect.Width - cxIcon + 1) / 2; y = (rect.Height - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); }