新版博客已经搭建好了,有问题请访问 htt://www.crazydebug.com

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

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

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

#include <atlbase.h>
#include <atlapp.h> extern CAppModule _Module; #include <atlwin.h>
#include <atlframe.h>
#include <atlmisc.h>
#include <atlcrack.h>

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<CMyWtlWindow>)
//wm_create消息
MSG_WM_CREATE(OnCreate);
END_MSG_MAP() //create函数 如果不知道我们可以右键MSG_WM_CREATE看一下类型
LRESULT OnCreate(LPCREATESTRUCT lparam)
{
MessageBox(_T("hello wtl"));
return ;
} };

程序的爆破点,类似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 ;
wndMain.ShowWindow(SW_SHOW);
wndMain.UpdateWindow(); //消息循环
while (GetMessage(&msg, NULL, , ))
{
TranslateMessage(&msg);
DispatchMessage(&msg); }
_Module.Term();
return msg.wParam;
}

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

最新文章

  1. Oracle数据库的创建以及远程连接(PL/SQL Developer远程连接数据库)
  2. 木耳听歌记---Clip+安装Rockbox
  3. Linux的一些命令
  4. Component creation must be done on Event Dispatch Thread错误解决方法
  5. 【Linux高频命令专题(17)】head
  6. C++函数中那些不可以被声明为虚函数的函数
  7. java面板设计
  8. Knockout Mvc Compoment FrameSet
  9. PHP中public、protected、private权限修饰符
  10. SpringBoot集成Redis实现缓存处理(Spring AOP实现)
  11. 使用Dockerfile构建镜像
  12. rails中link_to与button_to的一个功能差异
  13. 关于k8s安装脚本方面的草稿
  14. Win10系统进行远程桌面连接出现身份验证错误怎么办
  15. java三大特性--继承
  16. Elasticsearch + logstash + kibana 配置
  17. 沧桑巨变中焕发青春活力-记极1s HC5661A 打怪升级之路
  18. 实现JNI的另一种方法:使用RegisterNatives方法传递和使用Java自定义类 (转)
  19. iOS-封装UIPickerView
  20. 【Python】学习笔记之列表生成式

热门文章

  1. Indexed (materialized) views in SQL Server,different with Oracle (materialized) views
  2. luogu P2774 方格取数问题
  3. Python 基础之面向对象类的继承与多态
  4. mysql学习指令
  5. ISAP 算法
  6. 【快学springboot】12.实现拦截器
  7. 网络协议-dubbo协议
  8. Kali环境使用Metasploit生成木马入侵安卓手机
  9. Caused by: java.net.ConnectException: Connection timed out: connect
  10. 生成MyEclipse6.5&amp;7.5&amp;8.5 注册机源码