hellomfc
头文件 hello.c
#ifndef afxwin_H_
#include <afxwin.h>
#endif
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();//一个虚函数,成功返回非零值,其他返回0,为应用程序提供一个自身初始化的机会
};
class CMainWindow : public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();
};
源文件
// hellowindow.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "hello.h"
CMyApp myApp;
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd ->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
Create(NULL, _T("the hello app"));
}
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText(_T("hello,mfc"), -1, &rect, DT_CENTER | DT_VCENTER);
}
编程中出现的错误
#error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
解决办法
在工程属性-〉general-〉using MFC 选择 Use MFC in a Shared DLL
CDC::DrawText
virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
如果成功,则返回文本高度。
lpszString 指向要绘制的文本的指针。如果nCount是-1,该字符串必须是空终止的。
nCount 字符串中字符数目。如果为-1,lpszString被认为是一个指向空终止的字符串的长指针。DrawText自动计算字符数目。
lpRect 指向RECT结构或Crect对象的指针,结构(或对象)中包含有矩形(逻辑单位表示),其中的文本带有格式。
nFormat 指定格式化文本的方法。它可以值的组合(可用运算符或位操作符进行组合)。