• 大小: 4.37MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-16
  • 语言: C/C++
  • 标签: MFC  界面  

资源简介

这是一个基于MFC的计算器。可运行,全部文档齐全。 其是一个有优化了的计算器.支持科学计算,且界面友善

资源截图

代码片段和文件信息

// AdvButton.cpp : implementation file
//

#include “stdafx.h“
#include “Calculator.h“
#include “AdvButton.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAdvButton

CAdvButton::CAdvButton()
{


//初始化m_ClientRect
m_ClientRect.left  = 0;
m_ClientRect.top   = 0;
m_ClientRect.right = 0;
m_ClientRect.bottom= 0;

m_ClientRgn.Deleteobject();  //删除区域对象
m_ClientRgn.CreateEllipticRgnIndirect(&m_ClientRect);  //创建椭圆区域

m_State = 0;
m_Point.x = m_Point.y = 0;
m_IsTimerOn = FALSE;


}

CAdvButton::~CAdvButton()
{
}


BEGIN_MESSAGE_MAP(CAdvButton CButton)
//{{AFX_MSG_MAP(CAdvButton)
ON_WM_CREATE()
ON_WM_LBUTTONUP()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdvButton message handlers

int CAdvButton::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CButton::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here
return 0;
}






void CAdvButton::OnLButtonUp(UINT nFlags CPoint point) 
{
// TODO: Add your message handler code here and/or call default

CRect rect;
GetWindowRect(&rect);   //得到按钮客户区域的屏幕坐标位置
GetCursorPos(&m_Point);  //得到鼠标的屏幕坐标位置
if((rect.PtInRect(m_Point))&&(m_State != 1))
{
m_State = 1; //1:focus state
Invalidate();   //重绘客户区
}



CButton::OnLButtonUp(nFlags point);
}


void CAdvButton::OnLButtonDown(UINT nFlags CPoint point) 
{
// TODO: Add your message handler code here and/or call default
CRect rect;
GetWindowRect(&rect);  //得到按钮客户区域的屏幕坐标位置
GetCursorPos(&m_Point);  //得到鼠标的屏幕坐标位置
if((rect.PtInRect(m_Point))&&(m_State != 2))
{
m_State = 2; //2:select state
Invalidate();  //重绘客户区
}

CButton::OnLButtonDown(nFlags point);
}



void CAdvButton::onmousemove(UINT nFlags CPoint point) 
{
// TODO: Add your message handler code here and/or call default
if(!m_IsTimerOn)    //如果计时器没用启动
{
SetTimer(100010NULL);  //启动计时器
m_IsTimerOn = TRUE;
}

CButton::onmousemove(nFlags point);
}



void CAdvButton::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default

CRect rect;
GetWindowRect(&rect);   //得到按钮客户区域的屏幕坐标位置
GetCursorPos(&m_Point);  //得到鼠标的屏幕坐标位置

if(rect.PtInRect(m_Point))  //如果鼠标在按钮的客户区内
{
if((m_State != 1)&&(m_State != 2))
{
m_State = 1;
Invalidate();
}
}
else       //如果鼠标已经不在按钮的客户区内了
{
if(m_State != 0)
{
m_State = 0;
Invalidate();  //重绘客户区
}
KillTimer(nIDEvent);  //关闭计时器
m_IsTimerOn = FALSE;
}



CButton::OnTimer(nIDEvent);
}



void CAdvButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
// TODO: Add your code to draw the specified item
//get client rect
GetCli

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-08-17 16:10  Calculator\
     文件        4833  2011-08-17 16:10  Calculator\AdvButton.cpp
     文件        2213  2011-08-11 16:37  Calculator\AdvButton.h
     文件        1361  2011-08-12 19:58  Calculator\AdvEdit.cpp
     文件        1177  2011-08-11 17:16  Calculator\AdvEdit.h
     文件       23008  2011-08-17 15:21  Calculator\Calculator.aps
     文件        2877  2011-08-17 15:21  Calculator\Calculator.clw
     文件        2119  2011-08-06 16:20  Calculator\Calculator.cpp
     文件        4484  2011-08-11 17:17  Calculator\Calculator.dsp
     文件         528  2011-08-06 16:20  Calculator\Calculator.dsw
     文件        1368  2011-08-06 16:20  Calculator\Calculator.h
     文件       74752  2011-08-17 16:10  Calculator\Calculator.ncb
     文件      203776  2011-08-17 16:10  Calculator\Calculator.opt
     文件         254  2011-08-17 16:10  Calculator\Calculator.plg
     文件        7377  2011-08-12 22:25  Calculator\Calculator.rc
     文件       18042  2011-08-12 23:04  Calculator\CalculatorDlg.cpp
     文件        3962  2011-08-12 23:02  Calculator\CalculatorDlg.h
     目录           0  2011-08-17 16:10  Calculator\Debug\
     文件       22180  2011-08-17 16:10  Calculator\Debug\AdvButton.obj
     文件           0  2011-08-17 15:20  Calculator\Debug\AdvButton.sbr
     文件       15254  2011-08-17 15:20  Calculator\Debug\AdvEdit.obj
     文件           0  2011-08-17 15:20  Calculator\Debug\AdvEdit.sbr
     文件     3154944  2011-08-17 15:20  Calculator\Debug\Calculator.bsc
     文件      131138  2011-08-17 16:10  Calculator\Debug\Calculator.exe
     文件      278140  2011-08-17 16:10  Calculator\Debug\Calculator.ilk
     文件       20896  2011-08-17 15:20  Calculator\Debug\Calculator.obj
     文件     6936748  2011-08-17 15:20  Calculator\Debug\Calculator.pch
     文件      476160  2011-08-17 16:10  Calculator\Debug\Calculator.pdb
     文件        3968  2011-08-12 22:25  Calculator\Debug\Calculator.res
     文件           0  2011-08-17 15:20  Calculator\Debug\Calculator.sbr
     文件       86743  2011-08-17 15:20  Calculator\Debug\CalculatorDlg.obj
............此处省略12个文件信息

评论

共有 条评论