关于利用MFC编写Windows应用程序

头文件mfcWindows.h//应用程序类classCMFCApp:publicCWinApp{public:virtualBOOLInitIntance();};//... 头文件mfcWindows.h
//应用程序类
class CMFCApp:public CWinApp
{
public:
virtual BOOL InitIntance();
};

//主窗口类
class CMFCWindow:public CFrameWnd
{
public:
CMFCWindow();
protected:
afx_msg void OnPaint();//afx_msg只是提示,这是一个消息处理函数
DECLARE_MESSAGE_MAP()//声明消息映射
};

源程序mfcWindows.cpp
#include<afxwin.h>
#include"mfcWindows.h"
CMFCApp mfcApp;
//每当应用程序首次执行时都要调用的初始化函数
BOOL CMFCApp::InitIntance()
{
m_pMainWnd= new CMFCWindow();//构造 CMFCWindow对象,应用程序的主框架窗口
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}

//建立消息映射
BEGIN_MESSAGE_MAP(CMFCWindow,CFrameWnd)//宏声明,当前类及其基类
ON_WM_PAINT()
END_MESSAGE_MAP()

//窗口类的构造函数
CMFCWindow::CMFCWindow()
{
Create(NULL,_T("使用MFC编写应用程序"));
}

//对WM_PAINT消息进行响应
void CMFCWindow::OnPaint()//窗口需要重新绘制的时候
{
CPaintDC dc(this);//专门处理WM_PAINT消息
CRect rect;
GetClientRect(&rect);//需要绘制的客服窗口区
dc.DrawText(_T("欢迎使用MFC"),-1,&rect,//调用DrawText将文本输出到窗口上
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
}
#include<afxwin.h>
#include"mfcWindows.h"
CMFCApp mfcApp;
//每当应用程序首次执行时都要调用的初始化函数
BOOL CMFCApp::InitIntance()
{
m_pMainWnd= new CMFCWindow();//构造 CMFCWindow对象,应用程序的主框架窗口
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}

//建立消息映射
BEGIN_MESSAGE_MAP(CMFCWindow,CFrameWnd)//宏声明,当前类及其基类
ON_WM_PAINT()
END_MESSAGE_MAP()

//窗口类的构造函数
CMFCWindow::CMFCWindow()
{
Create(NULL,_T("使用MFC编写应用程序"));
}

//对WM_PAINT消息进行响应
void CMFCWindow::OnPaint()//窗口需要重新绘制的时候
{
CPaintDC dc(this);//专门处理WM_PAINT消息
CRect rect;
GetClientRect(&rect);//需要绘制的客服窗口区
dc.DrawText(_T("欢迎使用MFC"),-1,&rect,//调用DrawText将文本输出到窗口上
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
}

为什么编译运行之后,没有窗口界面弹出??

我用的win32编写的“Win32项目”
展开
 我来答
wxyunbest
2008-12-05 · TA获得超过170个赞
知道答主
回答量:33
采纳率:0%
帮助的人:38.8万
展开全部
WM_PAINT是系统消息啊,每次重画都发这个信息给窗口的,其中包含重画对话框。
你建立消息映射,重写OnPaint函数,会把基类里面的原型函数覆盖掉的!!!
你的基类函数都显示不出来了,还怎么响应你的新类窗口啊!!
建议不要用WM_PAINT消息,或者直接修改基类里面的OnPaint函数
jldhb
2008-12-04
知道答主
回答量:27
采纳率:0%
帮助的人:0
展开全部
利用向导做一下。
我做过win32项目,好象和你的代码有不同。没有winmain函数啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
熊貓不再燒香
2008-12-04
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
需要使用MFC 库。project->setting->General选项页的Microsoft Foundation classes选择Use MFC in a Shared DLL或者Use MFC in a static Library
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ziguowen
2008-12-04 · TA获得超过2723个赞
知道小有建树答主
回答量:785
采纳率:35%
帮助的人:350万
展开全部
好像你没有创建窗口。creat()函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式