MFC窗口的建立

VS2015

头文件

#include //mfc头文件

class MyApp :public CWinApp//继承CWinApp应用程序类
{
public:
	//程序入口
	virtual BOOL InitInstance();



};

class MyFrame :public CFrameWnd//继承于CFrameWnd窗口框架类
{
public:
	MyFrame();

	//声明宏 提供消息映射机制
	DECLARE_MESSAGE_MAP()
	afx_msg void OnLButtonDown(UINT, CPoint);//鼠标左键按下函数原型
	afx_msg void OnChar(UINT, UINT, UINT);//键盘按下函数原型
	afx_msg void OnPaint();//绘图宏函数原型



};

源文件:

#include "mfc.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];//MFC中的字符数组类型
//	wsprintf(buf, TEXT("x = %d,y = %d"), point.x, point.y);
//
//	MessageBox(buf);//MFC里的MessageBox的API与底层MessageBox的API是不同的
	//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);//类似QT里的QPaint画夹类

		dc.TextOutW(100, 100, TEXT("人生苦短 我用Python"));

		//画椭圆
		dc.Ellipse(10,10,100,100);

		//多字节转为 宽字节
		//TEXT是自适应编码的转换
		//TCHER 自适应编码的转换
		//MessageBox(L"aaa");//一打开exe就弹出

		//统计字符串长度
		int num = 0;
		char *p = "aaaa";
		num = strlen(p);

		//统计宽字节的字符串长度
		wchar_t *p2 = L"bbbb";
		num = wcslen(p2);

		//char * 与 CString之间的转换
		char *p3 = "ccc";
		CString str = CString(p3);//有参构造
		//CString ->char *
		CStringA tmp;
		tmp = str;
		char *pp = tmp.GetBuffer();
}

//英文 一个字符对应一个字节 叫多字节
//中文 一个字符对应多个字节 叫宽字节 Unicode UTF-8对应3个 ...

 

你可能感兴趣的:(CPP)