CWindowImpl类

ATL学习实践(VC8)-用CWindowImpl实现窗口 用CWindowImpl实现窗口一、新建工程。在VC8创建一个ATL Project工程。名称为ATL_Test,,Server Type为Executable(EXE),完成。 二、新建窗口类。添加一个C++类,做为窗口类。向导中填写类名CMyWindow,基类CWindowImpl,OK。在stdafx.h中包含头文件:#include 生成代码如下://version 阅读详情

这个类允许你创建一个新的窗口或使一个存在的窗口变成一个子类。CWindowImpl窗口程序使用消息映射来导向详细到响应的句柄。
template
< class T,
class TBase = CWindow,
class TWinTrait = CControlWinTraits >
class ATL_NO_VTABLE CWindowImpl :
public CWindowImplBaseT< TBase, TWinTraits >
参数:
T:你的类,继承自CWindowImpl
TBase:你类的基类,默认的类是CWindow
TWinTrait:一个定义你窗口风格的特性类。默认是CControlWinTraits.
备注:
Window CE支持一对新的窗口扩展风格,但其他的WINDOWS平台并不支持。同样Windows CE也不支持许多其他桌面平台上的窗口风格。这意味着你不能使用其他平台相同的标志类作为Create的参数dwStyle和dwExStyle的值。WindowCE也不支持标准的菜单条。
CWindowImpl::Create创建一个新的基于CWndClassInfo管理的窗口类消息的窗口。CWindowImpl包含
DECLARE_WND_CLASS宏,它意味着CWndClassInfo将注册一个新的窗口类。如果你想超类化一个存在的类,从CWindowImpl继承被包含DECLARE_WND_SUPERCLASS宏。这种情况下,CWndClassInfo将注册
一个基于存在的类的窗口类,但使用CWindowImpl::WindowProc作为处理函数。例如:
class CMyWindow : CComControl<CMyWindow>, ...
                // CComControl derives from CWindowImpl
{
public:
   // 1. The NULL parameter means ATL will generate a
   //    name for the superclass.
   // 2. The "EDIT" parameter means the superclass is
   //    based on the standard Windows Edit box.
   DECLARE_WND_SUPERCLASS(NULL, "EDIT")
   ...
};

因为CWndClassInfo 管理一个单个窗口类的信息,每个通过一个CWindowImpl实例创建的窗口都基于相同的窗口类。
CWindowImpl也支持窗口子类化。子类窗口方法附加一个存在的窗口到CWindowImpl对象并改变窗口处理程序为CWindowImpl::WvindowProc。每个CWindowImpl实例能够子类化一个不同的窗口。
对于任何给定的CWindowImpl对象,调用Create或SubclassWindow。你不应该同时调用这两个方法。
另外在CWindowImpl中,ATL提供CWindowImpl来创建一个包含其他对象的窗口。基类的析构函数确保window在对象被销毁之前无效。
CWindowImpl继承自CWindowImplBaseT,CWindowImplBaseT继承自CWindowImplRoot,CWindowImplRoot
继承字TBase和CMessageMap.

CWindowImpl template class ATL_NO_VTABLE CWindowImpl :  public CWindowImplBaseT { public:  DECLARE_WND_CLASS(NULL)  static LPCTSTR GetWndCaption()  {   return NULL;  }  HWND Create(   _In_opt_ HWND hW 阅读详情

相关推荐

CWindowImpl ATL对象向导

这是一个ATL对象向导,可简化使用CWindowImpl的窗口开发。 它删除了类实现之间多余的代码复制-n-粘贴。

WTL入门(4)--- 对话框和控件

[源代码下载:http://download.youkuaiyun.com/source/3522801] MFC中,对话框和控件的封装节省了我们大量的时间和成本,否则我们需要编写大量的消息处理来管理各个控件。MFC提供了Dialog Data Exchange(DDX,对话框数据交换,对

在水一方 8679

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 339

WTL入门(2)-- WTL基础

源代码下载:http://download.youkuaiyun.com/source/3522792 WTL Overview WTL的类可以分为以下几类: 1)窗口实现类 - CFrameWindowImpl, CMDIFrameWindowImpl … 2)控件封装类 - CB

在水一方 6041

STM32H745xI双核芯片SMPS/LDO配置误区:从复位失败到精准排查的实战复盘

本文详细分析了STM32H745xI双核芯片在SMPS/LDO配置中的常见误区,特别是复位失败问题的排查过程。通过对比参考板与故障板的波形数据,揭示了电感选型不当导致的电源稳定性问题,并提供了硬件设计检查清单和调试技巧,帮助开发者避免类似陷阱。

weixin_42531588的博客 265

Ubuntu20.04下Intel RealSense D435i相机驱动配置全攻略(含ROS Noetic适配)

本文详细介绍了在Ubuntu20.04系统下配置Intel RealSense D435i相机驱动的完整流程,包括libRealsense SDK 2.0安装、ROS Noetic适配及常见问题解决方案。通过实战指南帮助开发者快速实现深度相机与ROS的集成,适用于机器人视觉和SLAM应用开发。

weixin_29281915的博客 512

WTL 基础: CWindowImpl 发现

CWindow 其实只是一个数据结构或者分类。

xianlaowu的专栏 2358

告别环境报错:Qt Creator里配置Android SDK/NDK/JDK路径的完整避坑指南

本文详细解析了在Qt Creator中配置Android SDK/NDK/JDK路径的完整避坑指南,深入探讨了路径检测的内部机制、构建套件配置的隐藏逻辑以及项目级与全局配置的优先级。通过实际案例和高级排查技巧,帮助开发者解决常见的环境报错问题,提升Qt安卓开发效率。

weixin_42548829的博客 238

第一章 第四小节Duilib的WindowImplBase基类(二)--CWindowWnd

文章目录1.CWindowWnd类2.作者答疑 1.CWindowWnd类   在duilib中,绘制对象的目标载体是窗口,那就必然有窗口部分的内容需要处理,在WindowImplBase中,封装在父类CWindowWnd中,如下所示: class UILIB_API CWindowWnd { public: CWindowWnd(); HWND GetHWND() const; operator HWND() const;//类型转换函数

插件开发 747

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

Meta DINOv3实战指南:如何用7B参数ViT模型搞定图像分割与检测(附Hugging Face配置)

本文提供了Meta DINOv3模型的实战应用指南,重点介绍了如何利用这个7B参数的视觉Transformer模型进行图像分割与目标检测。通过详细的Hugging Face配置步骤、环境搭建、模型加载与推理优化,帮助开发者快速上手这一强大的自监督视觉模型,并高效应用于实际计算机视觉任务中。

s3t4u的博客 906

CWindowImpl 的作用

http://msdn.microsoft.com/en-us/cc451373(zh-cn,VS.71).aspx使用 CWindowImpl 实现窗口若要实现窗口,请从 CWindowImpl 派生类。在派生类中声明消息映射和消息处理函数。现在可以以三种不同的方式使用类: 基于新的 Windows 类创建窗口为现有 Windows 类创建超类为现有窗口创建子类基于新 Windows 类创建窗口CWindowImpl 包含声明 Windows 类消息的 DECLARE_WND_CLASS 宏。该宏实现 G

WINCOL的专栏 2981

jlink v9刷固件修改序列号来修复弹窗

jlink v9弹窗警告修复j

weixin_40500627的博客 9367

ATL3.0中的窗口类

ATL3.0中的窗口类 作者:Michael Park 译者:京山游侠原文出处: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/atlwindow.asp 摘要:讨论Active Template Library (ATL) 3.0中的一些

伏龙的专栏 1132

三维点云转深度图

点云投影过程是将三维点云数据转化为二维图像坐标的关键步骤,它的实现涉及到相机内外参数的计算,包括相机的内部参数(如焦距和主点)和外部参数(如相机位置和方向)。具体来说,可以通过将每个点的三维坐标转换为相机坐标系下的坐标,然后使用相机内部参数和外部参数来计算在二维图像中的坐标。接着计算每个点的深度值,将深度值映射到像素值上,最后创建深度图像并将深度值赋给对应的像素值。这里需要注意的是,在将深度值映射到像素值上时,需要将像素值转换为 uchar 类型,否则在将深度值赋给像素值时会出现类型不匹配的错误。

点云兔子的博客 3171

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

不使用ATL向导,创建一个简单的ATL对话框程序.

本例使用CWindowImpl类创建对话框程序.第一步:建立一个新的Win32 Application工程.第二步:在stdafx.h中包含下面三行.      #include extern CComModule _Module;#include 第三步:写WinMain函数,如下:      int APIENTRY WinMain( HINSTANCE hInstance,

sanjiang的专栏 1303

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WTL中的窗口类

CWindow封装了Windows的大部分API,且CWindows只有一个变量m_hWnd。 还有一个类是CWindowImpl,它封装了class registration、 window subclassing、 message maps、和 一个基本的WindowProc()。 The WTL classes can be divided into a few major catego...

weixin_33854644的博客 427

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ATL 窗口类源码浅析

图1对于典型的Win32应用程序而言,一般包括WinMain,窗口类注册,创建显示窗口,消息循环,消息处理。下面是ATL Internals上面对上图的说明:ATL对Win32窗口API的封装如上图,其中粗体子的类比较重要,而其它的则是作为一般的辅助类,当然这个图并没有包括所有的内容,比如窗口类注册,消息循环等,下面我会一一道来。1WinMain在ATL窗口程序中没有太大的变化

ToCpp的专栏 1831

CWindowImpl<Typename T>不响应WM_INITDIALOG

只有Dialog类型的窗口才会响应WM_INITDIALOG, CWindowImpl所以不会响应WM_CREATE 看来 有必要区别下 CWindowImpl CDialogImpl CFrameWindowImpl CAxDialogImpl 下。 转载于:https://www.cnblogs.com/tupx/p/3448207.html...

addkpfk1986的博客 163

ATL 窗口类源代码学习笔记

可参考: WTL流程分析-初稿 ATL中的Thunk机制学习 1,CWindow ATL有一个专门为窗口设计的基础类,可以做全部的窗口操作,这就是CWindow。它实际上就是对HWND操作的一个包装类,对几乎所有以HWND句柄为第一个参数的窗口API的进行了封装,例如:SetWindowText() 和 DestroyWindow()。CWindow类有一个公有成员m_hW

人体运动、生物特征、高性能移动计算、人性化智能交互 727

ATL中显示窗口

使用 CWindowImpl 实现窗口2010-05-20 09:10若要实现窗口,请从 CWindowImpl 派生类。在派生类中声明消息映射和消息处理函数。现在可以以三种不同的方式使用类:基于新的 Windows 类创建窗口为现有 Windows 类创建超类为现有窗口创建子类基于新 Windows 类创建窗口CWindowImpl 包含声明 Windows 类消息的 DECLARE_WND_CLASS 宏。该宏实现 GetWndClassInfo 函数,此函数使用 CWndClassInfo 定义新 W

zhangxiaonanwin的专栏 2641

ATL7窗口类剖析

目录: ATL7窗口类剖析... 1 目录:... 1 前言:... 1 第一章 HWND和CWindow类... 1 Create成员函数:... 2 使用CWindow类... 3 第二章 CWindowImpl类... 4 ProcessWindowMessage与消息映射宏... 4 窗口创建与消息路由.....

226

WTL学习笔记(1)

一、ATL的GUI类1.ATL中和窗口相关的类ATL中的CWindow类定义了窗口的接口,它封装了绝大部分以HWND作为第一个参数的API函数,并直接将m_hWnd作为public成员提供。另外,它还重载了operator HWND,这样就可以将CWindow对象直接当作一个窗口句柄使用了。ATL中窗口的实现是由CWindowImpl完成的,其中包括窗口类的注册、窗口的子类化、消息映射以及一个基本

马说@优快云 1751
上一篇: CComObjectRootEx类
下一篇: CComModule类
windcsn
博客等级 码龄24年 50粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值