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();
};
mfc源文件:
#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);
//多字節轉爲寬字節
//TEXT是由自適應編碼的轉換
//TCHAR 自適應編碼的轉換
//MessageBox(L"aaa");
//統計字符串長度
int num = 0;
char * p= "aaa";
num = strlen(p);
//統計寬字節的字符串長度
wchar_t * p2 = L"aaa";
num = wcslen(p2);
//char * 與CString之間的轉換
//char * -> CString
char *p3 = "ccc";
CString str = CString(p3);
//CString -> char *
CStringA tmp;
tmp = str;
char *pp = tmp.GetBuffer();
//char* 作爲過渡橋樑 CString <- char * -> C++ String
}
//英語 一個字符對應一個字節 多字節
//中文 多語言 一個字符對應多個字節 寬字節 Unicode utf-8 3個 GBK 2個