objectARX创建 PaletteSet 停靠面板示例
objectARX创建 PaletteSet 停靠面板示例
图文By edata ,转载注明出处 http://www.cnblogs.com/edata
部分代码参考张帆《AutoCAD ObjectARX(VC)开发基础与实例教程》
以下是源码部分
//001.修改msxml为msxml6
//- Import the MSXML functionality
#import "msxml6.dll" named_guids
//using namespace MSXML ;
//002.#define MSXML 为 MSXML2
#define MSXML MSXML2
//-----------------------------------------------------------------------------
//- Used to add a dialog resource
int CMyPalette1::OnCreate (LPCREATESTRUCT lpCreateStruct) {
if ( CAdUiPalette::OnCreate (lpCreateStruct) == -1 )
return (-1) ;
//- Create it and set the parent as the dockctrl bar
//003 资源覆盖,显示ClildDlg.ShowWindow
CAcModuleResourceOverride myResource;
mChildDlg.Create (IDD_MYPALETTE1, this) ; CRect rect ;
GetWindowRect (&rect) ;
//- Move the window over so we can see the control lines
mChildDlg.ShowWindow(SW_SHOW);
mChildDlg.MoveWindow (0, 0, rect.Width (), rect.Height (), TRUE) ;
return (0) ;
}
//- Called by AutoCAD to steal focus from the palette
bool CMyPalette1::CanFrameworkTakeFocus () {
//- Not simply calling IsFloating() (a BOOL) avoids warning C4800
//return (GetPaletteSet ()->IsFloating () == TRUE ? true : false) ;
//004 设置切换焦点 无论是否停靠均能正常切换焦点
return true ;
}
//005.添加面板
#include "MyPaletteSet.h"
#include "MyPalette1.h"
#include "MyPalette2.h" //----------------------------------------------------------------------------- //006. 定义面板集全局变量
CMyPaletteSet *g_pPaletteSet=NULL;
CMyPalette1 *g_pPalette1=NULL;
CMyPalette2 *g_pPalette2=NULL;
//008. 销毁选项板
if (g_pPaletteSet != NULL)
{
g_pPaletteSet->DestroyWindow();
delete g_pPaletteSet;
g_pPaletteSet = NULL;
}
//007 创建面板集
if (!g_pPaletteSet)
{
// 创建palette set
g_pPaletteSet = new CMyPaletteSet;
CRect rect(0, 0, 90, 400); // 初始大小
g_pPaletteSet->Create(TEXT("自定义选项板"),
WS_OVERLAPPED | WS_DLGFRAME,
rect,
acedGetAcadFrame(),
PSS_EDIT_NAME |
PSS_PROPERTIES_MENU |
PSS_AUTO_ROLLUP |
PSS_CLOSE_BUTTON
);
// 选项板1
g_pPalette1 = new CMyPalette1(); // 自定义的选项板
g_pPalette1->Create(WS_CHILD | WS_VISIBLE, TEXT("选项板1"), g_pPaletteSet, PS_EDIT_NAME);
g_pPaletteSet->AddPalette(g_pPalette1);// 添加到选项板集合
// 选项板2
g_pPalette2 = new CMyPalette2(); // 自定义的选项板
g_pPalette2->Create(WS_CHILD | WS_VISIBLE, TEXT("选项板2"), g_pPaletteSet, PS_EDIT_NAME);
g_pPaletteSet->AddPalette(g_pPalette2);
// 显示选项板集合
g_pPaletteSet->EnableDocking(CBRS_ALIGN_ANY);
g_pPaletteSet->RestoreControlBar();
}
acedGetAcadFrame()->ShowControlBar(g_pPaletteSet, TRUE, FALSE);
// 设置透明度
if (g_pPaletteSet->GetOpacity() != 100)
{
g_pPaletteSet->SetOpacity(100);
}
//设置面板停靠后的最小宽度 ARX2012开始新增函数
AdUiSetDockBarMinWidth(90);
objectARX创建 PaletteSet 停靠面板示例的更多相关文章
- Unity3D热更新之LuaFramework篇[02]--用Lua创建自己的面板
在上篇文章 Unity3D热更新之LuaFramework篇[01]--从零开始 中,我们了解了怎么获得一个可用的LuaFramework框架. 本篇将我会先介绍一下如何配置Lua开发环境,然后分析在 ...
- 创建PaletteSet的一个问题
下面是一个常规创建PaletteSet面板的代码: public static PaletteSet m_ps = null; [CommandMethod("MyPalette" ...
- MsXml创建和解析XML示例
一.MsXml创建XML文档示例 // XmlCreationDemo.cpp #include <stdlib.h> #include <stdio.h> // 引入MSXM ...
- C#与数据库访问技术总结(六)之Command对象创建SQl语句代码示例
Command对象创建SQl语句代码示例 说明:前面介绍了 Command 对象的方法和一些属性,回顾一下 Command对象主要用来执行SQL语句.利用Command对象,可以查询数据和修改数据. ...
- 使用Express创建一个简单的示例
1.安装Express 使用npm包安装工具来安装Express安装包,打开npm命令行,输入: npm install -g express 2.创建一个工程 本示例是在windows下创建的,项目 ...
- VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)
鸡啄米在上一节教程中讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使用. 工具栏的使用 上一节中鸡啄米提到过,一般情况下工具栏中的按钮在菜单栏中都有 ...
- VS2010-MFC(工具栏:工具栏的创建、停靠与使用)
转自:http://www.jizhuomi.com/software/217.html 上一节教程讲了工具栏资源及CToolBar类,本节继续讲解工具栏的相关知识,主要内容包括工具栏的创建.停靠与使 ...
- JavaScript创建读取cookie代码示例【附:跨域cookie解决办法】
使用JavaScript 原生存取cookie代码示例: var cookie = { set : function(name, value, expires, path, domain, secur ...
- Maven 创建项目之简单示例
maven 是一个项目管理工具.可以用来管理jar包依赖,构建项目等. 那么接下来,就在eclipse中使用maven创建一个简单的项目. 1,依次点击File-> New -> Othe ...
随机推荐
- 【319】Python 通过 Twilio 发短信
参考:python利用twilio模块给自己发短信 参考:使用python实现往手机发短信(基于twilio) 步骤如下: 登录 Twilio 网站注册,貌似需要***,包括用户名.密码.手机号.项目 ...
- Python运维开发基础03-语法基础
上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现" ...
- 26.Remove Duplicates from Sorted Array(Array)
Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...
- sql server 日期转换
一.时间函数 在使用存储过程,sql函数的时候,会遇到一些对时间的处理.比如时间的获取与加减.这里就用到了sql自带的时间函数.下面我列出这些函数,方便日后记忆,使用. --getdate 获取当前时 ...
- SqlMapConfig.xml配置文件中的mapper映射器标签
Mapper配置的几种方式: 1. <mapper resource=" "/> 使用相对于类路径的资源 如:<mapper resource="com ...
- TableLayout 中不显示动态添加的tableRow
下面的代码不显示: TableRow lay = new TableRow(layIndex.getContext()); lay.setLayoutParams(lpRow); //layIndex ...
- UVA 11865 Stream My Contest (二分+最小树形图)
题意:给定一个网络,一个服务器,其他的是客户机,有 m 条连线,每条有一个带宽和花费(单向边),让你用不超过 c 的花费,使得 0 到 所有的机器都能到达,并且使得最小带宽最大. 析:很明显是二分题, ...
- windows7文件夹怎样默认图片大图显示?
先打开一个含有图片的文件夹,在文件夹空白处右键选择属性,打开自定义选项卡. 确定自定义选项卡 显示的是:“优化此文件夹:图片”. 然后,选择:组织--文件夹和搜索选项--查看--文件夹视图,应用到文件 ...
- 支付宝 iOS SDK 官方下载页面[转]
from:http://blog.sina.com.cn/s/blog_6f72ff900102v0sw.html 藏得太深了,不得不记下来! 官方页面地址: https://b.alip ...
- struts2 入门程序
1.struts 2.5.2 基本jar包 2.web.xml <!-- Filters --> <!-- START SNIPPET: filter --> <filt ...