问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

MFC项目源文件

提问网友 发布时间:2023-10-20 06:09
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
3个回答
热心网友 回答时间:2024-05-16 16:32



听你这么说。我假定你已经学习了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()调用成员函数创建窗口

//你可以在你创建的单文档和对话框程序里面看见这些代码的踪影,用调试的方法加以追踪,加深理解

热心网友 回答时间:2024-05-16 16:32
建议看看孙鑫老师的视频,会让楼主茅塞顿开。windows系统暂时不用了,要不看看生成的文件或许会给楼主点提示,不过还是建议楼主看孙鑫老师的视频,楼主如若有一丁点后悔,回来扁我行了
热心网友 回答时间:2024-05-16 16:33
建议看看孙鑫的VC++深入详解,第三章,讲的很详细。这不是一两句说得清的

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

U盘一插到电脑上就直接卡死怎么办啊?1 中学生网络交友的利于弊7 猫咪把自己耳朵抓破了怎么办7 猫咪经常用爪子去挠耳朵有黑色东西,猫咪抓挠自己耳朵怎么回事?1 判刑后多久会通知家人270 法院判刑会通知家属吗305 被判刑的人自己不通知家属有关机构会通知吗4 法院判决犯人不需要通知亲人吗?34 电动车控制器接法82 女性鸡年1993二月十五出生的人命运好吗? 1988年农历二月十五出生的是什么星座?1 我修改了一次,我想修改第二次,怎么办? 微信如何二次更改 我小腹下面,长毛的地方的那个骨头,平时不疼,用手按压疼,请问...2 宋茜生日时水晶和雪莉故意惹宋茜生气准备惊喜?8 未来教育等考网校体验卡怎么激活? 联想Y470bios界面如何设置U盘启动77 封神英雄榜中的宝血人鱼真名叫什么 fanuc数车子程序循环点怎么确定? 美人鱼汐汐的真名叫什么?4 我今年9岁,找一篇(写给2O21年自己的一封信)作文53 蓝牙手柄连接苹果手机配对不成功怎么办?以前连接上过,忽略了之...1 一个身份证可以绑定几个吗? 《武林萌主·终结篇》epub下载在线阅读,求百度网盘云资源 为什么有些人说宋茜欺负luna 求具体事件说明 他们5人私底...101 求详细解答:读一读,把合适的词语 仿写 人生只有逗号,破折号,省略号,永远没有句号24 盲肠炎开完刀要多久才能出院? 手机总感觉被人监视了,怎么避免?3 犯罪嫌疑人在判刑时,法院是否可以不通知家属?20 关于大学生挂科状况及其成因分析 索尼投影机EB55DDCF灯泡使用寿命是多少 中学生网络交友的利弊的研究 中学生网络交友弊与利辩论会86 我儿子3岁,今天确诊是病毒性脑炎,体温从下午37.7度,打针...7 中学生上网聊天交朋友究竟好不好呢?4 苏州上达投资管理有限公司怎么样? oppo r9plus从昨天开始上午接电话就听不见声音,我听... fx)水晶怎么好像不怎么喜欢自己的组合似得,很少看见宋茜和她...1922 王者荣耀我想卖了,但是我不想卖?
Top