mfc头文件:
#include<afxwin.h>//mfc头文件
class MyApp:public CWinApp //CWinApp 应用程序类
{
public:
//程序入口
virtual BOOL InitInstance();
};
class MyFrame:public CFrameWnd //窗口框架类
{
public:
MyFrame();
//声明宏 提供消息映射机制
DECLARE_MESSAGE_MAP();
afx_msg void OnLButtonDown(UINT, CPoint);//鼠标按下
afx_msg void OnChar(UINT,UINT,UINT);//键盘
afx_msg void OnPaint();
};
源文件:
#include"MfcTest.h"
MyApp app;//全局应用程序对象,有且仅有一个
BOOL MyApp::InitInstance()
{
//创建窗口
MyFrame * frame = new MyFrame;
//显示和更新
frame->ShowWindow(SW_SHOWNORMAL);
frame->UpdateWindow();
m_pMainWnd = frame;//保存指向应用程序的主窗口的指针
return TRUE;//返回正常初始化
}
BEGIN_MESSAGE_MAP(MyFrame,CFrameWnd)
ON_WM_LBUTTONDOWN()//鼠标左键按下
ON_WM_CHAR()//键盘
ON_WM_PAINT()//绘图
END_MESSAGE_MAP()
MyFrame::MyFrame()
{
Create(NULL,TEXT("mfc"));
}
void MyFrame::OnLButtonDown(UINT,CPoint point)
{
/*TCHAR buf[1024];
wsprintf(buf,TEXT("x = %d, y=%d"),point.x,point.y);
MessageBox(buf);
*/
//mfc中的字符串 CString
CString str;
str.Format(TEXT("x = %d,y = %d"),point.x,point.y);
MessageBox(str);
}
void MyFrame::OnChar(UINT key,UINT,UINT)
{
CString str;
str.Format(TEXT("按下了%c键"),key);
MessageBox(str);
}
void MyFrame::OnPaint()
{
CPaintDC dc(this);//画家类 this 代表绘图设备
//CDC里找其他能画的图形
dc.TextOutW(100,100,TEXT("HELLO"));
//画椭圆
dc.Ellipse(10,10,100,100);
}
效果图: