博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WTL之手动编写框架窗口
阅读量:6416 次
发布时间:2019-06-23

本文共 1632 字,大约阅读时间需要 5 分钟。

新版博客已经搭建好了,有问题请访问 

本人是一个实践主义者,不罗嗦上一篇工程搭建好以后,这一篇就开始写代码,写之前再说几句,如果你熟悉MFC分析过MFC框架的话,你写起来就很顺手,其实我觉得WTL手动创建一个窗口比MFC简单多了,基本道理都是相同的,细节差异而已

新建一个WIN32空项目,添加新建项 main.h main.cpp

1.在main.h中引入需要使用的头文件

#include 
#include
extern CAppModule _Module;#include
#include
#include
#include

2.框架窗口类的声明

//基本套路class CMyWtlWindow : public CFrameWindowImpl < CMyWtlWindow>{public:    //创建窗口类    DECLARE_FRAME_WND_CLASS(_T("CrazyWtl"),IDI_ICON1)    //消息机制 ATL3.0必须用BEGIN_MSG_MAP_EX定义路由   //ATL7.0从CWindowImpl和CDialogImpl派生的类可以直接使用BEGIN_MSG_MAP定义消息路由   //其他消息必须以BEGIN_MSG_MAP定义消息路由    BEGIN_MSG_MAP()        //消息链,我的理解就是让父窗口帮助处理消息        CHAIN_MSG_MAP(CFrameWindowImpl
) //wm_create消息 MSG_WM_CREATE(OnCreate); END_MSG_MAP() //create函数 如果不知道我们可以右键MSG_WM_CREATE看一下类型 LRESULT OnCreate(LPCREATESTRUCT lparam) { MessageBox(_T("hello wtl")); return 0; }};

程序的爆破点,类似MFC中的theApp;

CAppModule _Module;

WinMain函数,MFC连WinMain都不用写

int APIENTRY WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,    _In_ LPSTR lpCmdLine, _In_ int nShowCmd){    _Module.Init(NULL,hInstance);    CMyWtlWindow wndMain;     MSG  msg;     if (NULL == wndMain.CreateEx())        return 1;     wndMain.ShowWindow(SW_SHOW);    wndMain.UpdateWindow();    //消息循环    while (GetMessage(&msg, NULL, 0, 0))    {        TranslateMessage(&msg);        DispatchMessage(&msg);    }    _Module.Term();    return msg.wParam; }

就这样吧,细节不明白的留言,我比较懒,记录的东西只是用来回头看看复习的

 

转载于:https://www.cnblogs.com/crazydebug/p/5919019.html

你可能感兴趣的文章
asp.net core系列 52 Identity 其它关注点
查看>>
BOOST.PYTHON 封装C++全面整合
查看>>
如何使用github来展示自己的网页
查看>>
XML 标记使用的特殊字符对应内置实体
查看>>
无缝链接轮播图
查看>>
字符串常用函数
查看>>
-bash: xhost: command not found
查看>>
unity3d 给游戏添加音源 Unity3d adds a sound source to the game
查看>>
内存分哪些区 C++,ios,java
查看>>
[hexo]如何更换主题、删除文章
查看>>
cinder-volume报错vmdk2 is reporting problems, not sending heartbeat. Service will appear "down".
查看>>
linux 安装jdk
查看>>
在Linux下删除文件及文件夹(rm)
查看>>
算法:快速排序
查看>>
低中高脚本算法目录
查看>>
循环和选择
查看>>
文本比较算法Ⅱ——Needleman/Wunsch算法
查看>>
idea的debug调试快捷键
查看>>
阿里云ECS部署ES
查看>>
你对DBA的定义是什么?
查看>>