MFC项目源文件 15
在新建一个MFC项目后(如对话框),会产生很多源文件,请问这些源文件是怎样联系起来的?哪个是主要的源文件呢?他们之间的关系怎样?弄明白了,对于类似对话框的MFC项目,主要...
在新建一个MFC项目后(如对话框),会产生很多源文件,请问这些源文件是怎样联系起来的?哪个是主要的源文件呢?他们之间的关系怎样?
弄明白了,对于类似对话框的MFC项目,主要的源文件是DLG.CPP这一类,它相当于一个黑盒子,遇到函数时会调用其它的CPP源文件 展开
弄明白了,对于类似对话框的MFC项目,主要的源文件是DLG.CPP这一类,它相当于一个黑盒子,遇到函数时会调用其它的CPP源文件 展开
展开全部
听你这么说。我假定你已经学习了c++ 和 win32 (至少看过win32 的 hello word 示例程序)
一个简单程序简化为 如下:
窗口函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
....
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
创建注册窗口
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam ;
}
工程名.cpp 工程名.h 是一个 CWinApp 的派生类 。这2个文件执行的就是以下这些代码 :
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam ;
}
工程名Dlg.cpp 工程名Dlg.h 这2个文件创建一个窗口 。执行的代码是:
窗口函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
....
}
创建注册窗口
这只是粗略说说,至于细说,一言难尽。哎!太复杂了。我学习了很久才懂个大概。mfc真是难于理解。
下面我再贴一个mfc的简单例子。相比对话框例子。我觉得这能更好的理解mfc 。
//下面这个程序是在Win32工程里模拟MFC程序初始化并创建窗口的简单过程(当然,它只是模拟,意在理解MFC创建程序机制,其中是有漏洞的)
//1.创建一个Win32 Application工程-->新建一个C++ Source File-->复制并粘贴代码
//2.Alt+F7调出设置对话框-->在Microsoft基础类-->选择"使用MFC作为静态链接库"
//3.运行
#include"afxwin.h"
//窗口基类,用来最为程序的主窗口,当然也可继承于CFrameWnd类
class CMyWnd:public CWnd
{
public:
CMyWnd() //窗口类的构造函数
{
CreateEx(NULL,AfxRegisterWndClass(NULL),"MyWindow",WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,200,200,NULL,NULL,NULL);
}
};
//继承一个CWinApp类,用于构建程序实例
class CMyApp:public CWinApp
{
public:
BOOL InitInstance() //InitInstance()是虚函数,我们需要重载它并在里面添加我们初始化代码(如创建主窗口)
{
//m_pMainWnd是CWinThread里的一个数据成员,用来创建主窗口(选中"m_pMainWnd"->右键->转到"m_pMainWnd"的定义)
m_pMainWnd=new CMyWnd();
// m_pMainWnd->ShowWindow(m_nCmdShow); //CreateEx里有WS_VISIBLE,所以可以省略显示窗口函数
//你的代码
return true;
}
};
//创建一个程序实例
CMyApp TheApp;
//运行的顺序是:
//1 创建TheApp对象
//2 TheApp调用成员函数InitInstance()
//3 在InitInstance()里用成员变量m_pMainWnd创建窗口类(m_pMainWnd=new CMyWnd();)
//4 m_pMainWnd调用构造函数CMyWnd()
//5 在CMyWnd()调用成员函数创建窗口
//你可以在你创建的单文档和对话框程序里面看见这些代码的踪影,用调试的方法加以追踪,加深理解
展开全部
建议看看孙鑫老师的视频,会让楼主茅塞顿开。windows系统暂时不用了,要不看看生成的文件或许会给楼主点提示,不过还是建议楼主看孙鑫老师的视频,楼主如若有一丁点后悔,回来扁我行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议看看孙鑫的VC++深入详解,第三章,讲的很详细。这不是一两句说得清的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询