基于窗口子类化和窗口投递消息的火山视窗PC大漠多线程模板

火山视窗PC大漠多线程模板游戏实战

说明:


1.本套是59套《火山视窗PC大漠多线程模板游戏实战》升级优化版,难度较大!
2.采用窗口子类化
3.采用Windows投递消息PostMessage函数(异步投递)
4.加入线程中文本变量的初始化,因为线程对文本类型的变量写入会造成堵塞,所以需要先申请内存;包括主线程状态,任务状态,副线程状态
5.对线程进行了初始化赋值;包括索引,窗口句柄,线程句柄,主线程状态,任务状态
6.对脚本中所有调用的API和第三方dll单独封装一个类DLL类
7.对所有程序常量封装了一个常量类
8.优化程序结构,分类整理,便于维护升级。
9.调用SetThreadIdealProcessor【设置线程的首选处理器。 系统尽可能在其首选处理器上计划线程。
在处理器超过 64 的系统上,此函数将首选处理器设置为调用线程分配到的 处理器组中 的逻辑处理器。】
可以简单的理解为:充分利用所有多核CPU,切换到其他空闲执行
https://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-setthreadidealprocessor
10.一套好的模板在于细节,在于规范化,和一些准则。这样我们的程序才更稳定。
11.如果开启的线程特别多,超级列表框输出特别多,务必采用本套优化升级。

课程目录:


1.程序优化升级说明
2.建立DLL类调用免注册SetDllPathW和初始化CoInitializeEx
3.建立常量类
4.调用SetThreadIdealProcessor实现线程优化
5.调用GetWindowLongW获取窗口回调函数地址
参数:
Hwnd:窗口句柄
Index取值如下:
GWL_EXSTYLE (-20)得到扩展的窗口风格
GWL_STYLE (-16) 得到窗口风格
GWL_WNDPROC (-4)得到窗口回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用
GWL_HINSTANCE (-6)得到应用程序运行实例的句柄
GWL_HWNDPARENT(-8)得到父窗口的句柄
GWL_ID (-12) 得到窗口的标识符
GWL_USERDATA (-21)得到和窗口相关联的32位的值(每一个窗口都有一个有意留给创建窗口的应用程序是用的32位的值)
当hWnd标识一个对话框时可以使用下面的值
DWL_DLGPROC (4) 得到对话框回调函数的地址,或者句柄。得到后必须使用CallWindowProc函数来调用
DWL_MSGRESULT (0)得到对话框回调函数中消息处理过程的返回值
DWL_USER (8) 得到额外的应用程序私有信息,如一些句柄和指针等
返回值:
成功时,返回一个请求的32位的值
6.调用SetWindowLongW更改窗口属性
SetWindowLongW 函数 (winuser.h) - Win32 apps | Microsoft Learn
7.设置SetWindowLongW的回调函数
8.调用CallWindowProcW将消息信息传递给指定的窗口过程完成子类化
CallWindowProcW 函数 (winuser.h) - Win32 apps | Microsoft Learn
9.增加多线程成员变量序号主线程状态任务状态和副线程状态并初始化申请内存空间
10.主线程复位
11.主线程初始化和复位调用位置处理
12.子类化回调函数WindowProc自定义消息处理
13.火山视窗封装窗口投递消息
14.用窗口消息投递替换所有超级列表框置标题

收费说明:


鉴于教程特殊性,本教程为火山系59套《火山视窗PC大漠多线程模板游戏实战》附加升级教程,购买59套,送本套教程,特别说明,否则勿扰。
购买教程提供相应的售后,比如模块,火山在线安装和配置。

付费方法:


微信:zcp528
支付宝:zcp528@163.com
511遇见视频教程扫码支付页面:http://www.511yj.com/511-yj-pay.html
唯一联系QQ:272586593
官网地址:http://www.511yj.com/

解压密码:


www.511yj.com

下载地址和提取码:


链接: 购买后提供
提取码:


发布日期:

所属分类: 编程, 编程语言, 辅助开发 标签:  


没有相关文章!