CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

对话框创建和初始化

2024-5-18 16:58| 发布者: admin| 查看: 96| 评论: 0|原作者: admin|来自: AutoCAD

对话框创建和初始化

使用 MFC 资源向导创建一个新对话框。从 MFC 对话框基类(如 )派生一个新类。应创建一个占位符控件(如列表框),在创建该控件时,将该控件替换为属性检查器控件。使用要用于显示“属性检查器”控件的相同位置和矩形尺寸。CDialog

添加以下受保护的成员变量以保存指向 PropertyInspector ActiveX 控件的指针:

CComPtr<IPropertyInspector> mpInspector;

若要支持此控件,请包括 AcPi.h 文件。此生成的 IDL 文件包含所有属性检查器接口的声明。在对话框的实现文件中,将包含 AcPi_i.c 文件,用于定义属性检查器接口的 GUID。

此外,还需要以下受保护的成员来充当“属性检查器”控件的容器: CWnd*

CWnd* mpInspectorWnd; 

基本对话框初始化由 MFC 项目向导为您完成。您无需实现消息处理程序即可了解本练习的要点。同样,默认实现就足够了,因为属性检查器接口和控件(而不是 MFC)将处理此应用程序中的数据显示和更新。DoDataExchange()

除了基本的 MFC 设置之外,还必须实例化属性检查器控件,并设置初始化它所需的数据结构。这可以在覆盖中完成。在此函数中,应将之前创建的对话框占位符控件替换为属性检查器控件。从占位符获取窗口尺寸并将其应用于新的 Property Inspector 实例后,可以放弃占位符。CDialog::InitDialog()

若要创建“属性检查器”控件,请首先初始化成员以指向新对象。然后,使用属性检查器控件的 CLSID 作为其第一个参数进行调用。若要设置“属性检查器”窗口的大小以匹配对话框设计,请将占位符的矩形坐标作为矩形参数传递。mpInspectorWndCWndmpInspectorWnd->CreateControl()

最后,将占位符控件的 ID 作为参数传递。该参数告诉 Windows 使用什么 ID 来查找您的窗口。您还可以配置新窗口以通过调用 来响应此 ID。属性检查器控件现在将 ID 假定为自己的 ID。此序列实例化属性检查器 ActiveX 控件并替换对话框中的占位符。nIDnIDSetWindowLongPtr()IDC_PI_PLACEHOLDER

mpInspectorWnd = new CWnd;
ASSERT(mpInspectorWnd != NULL);
CWnd* pWnd = GetDlgItem(IDC_PI_PLACEHOLDER);
CRect rect;
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
mpInspectorWnd->CreateControl(CLSID_PropertyInspector, NULL,
    WS_CHILD | WS_TABSTOP | WS_VISIBLE, rect,
    this, IDC_PI_PLACEHOLDER);
SetWindowLong(mpInspectorWnd->m_hWnd, GWL_ID, IDC_PI_PLACEHOLDER);

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-5 17:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部