对AutoCAD二次开发方向的发展,是我为从事.net前就有的愿望,现在.net + ObjectARX 已经形成很完美的结合,遗憾的是目前国内关于.net对 ObjectARX 开发的资料太少。我会将自己的学习经验不断的与大家分享,希望关注。
WinAPI的引用:

public class WinAPI
{
    #region  宏定义  
    public const int WM_SETICON = 0x80;
    public const int IMAGW_ICON = 1;
    public const int LR_LOADFROMFILE = 0x10;
    #endregion
    
    #region  WinAPI定义
    [DllImport("User32.dll", EntryPoint = "SendMessage")]
    public static extern int SendMessage(
        int hWnd, // handle to destination window 
        int Msg, // message 
        int wParam, // first message parameter 
        int lParam // second message parameter 
    );
    
    [DllImport("user32", EntryPoint = "LoadImage")]
    public static extern int LoadImageA(int hInst, string lpsz, int un1, int n1, int n2, int un2);

[DllImport("user32", EntryPoint = "SetWindowText")]
    public static extern int SetWindowTextA(int hwnd, string lpString);
    #endregion
}

using System;
using System.IO;
//using Microsoft.Win32;
using System.Collections;
using System.Windows.Forms;
using System.Resources;

using Autodesk.AutoCAD.ApplicationServices;
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Windows;

using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
using Autodesk.AutoCAD.Customization;

public class AsdkClass1 : IExtensionApplication
{
    #region 实现接口函数,完成初始化操作
    //要实现这个接口,你必须实现Initialize() 和Terminate()函数。
    /// <summary>
    /// 初始化操作
    /// </summary>
    public void Initialize()
    {
        //--------------------
        //AddContextMenu();
        //AddToolbar();
        //AddMenuBar();
        SetTitle();
        SetIcon();
        //--------------------
    }
    /// <summary>
    /// 清除操作
    /// </summary>
    public void Terminate()
    {      
    }
    #endregion

#region 更改AutoCAD窗口的标题和图标
    /// <summary>
    /// 更改AutoCAD窗口的标题名称
    /// </summary>
    private void SetTitle()
    {
        AcadApplication acadApp = AcadApp.AcadApplication as AcadApplication;
        int AcadHwnd = acadApp.HWND;//获取AutoCAD应用程序的窗口句柄
        WinAPI.SetWindowTextA(AcadHwnd, "明信供电CAD 2.0");
    }

/// <summary>
    /// 更改AutoCAD窗口的图标
    /// </summary>
    private void SetIcon()
    {
        AcadApplication acadApp = AcadApp.AcadApplication as AcadApplication;
        int AcadHwnd = acadApp.HWND;//获取AutoCAD应用程序的窗口句柄
        string path = acadApp.Path;
        //从文件载入图标(16*16大小)
        string FileName = "G:\\cad.ico";
        if (File.Exists(FileName))
        {
            int hIcon = WinAPI.LoadImageA(0, FileName, WinAPI.IMAGW_ICON, 16, 16, WinAPI.LR_LOADFROMFILE);
            if (hIcon != 0)
            {
                WinAPI.SendMessage(AcadHwnd, WinAPI.WM_SETICON, 0, hIcon);
            }
        }
    }
    #endregion
}

效果图:

转载于:https://www.cnblogs.com/wf225/archive/2007/12/03/981311.html

AutoCAD.net(一):更改AutoCAD窗口的标题和图标相关推荐

  1. autoCAD 创建和编辑AutoCAD图元

    用户可以创建的对象的范围,从简单的直线.圆到复杂的样条曲线.椭圆和关联填充区域.通常,用户使用 AppendEntity 函数添加对象到中一个 BlockTableRecord 对象中.对象创建后,就 ...

  2. AutoCAD Electrical Essential Training AutoCAD Electrical Essential Training Lynda课程中文字幕

    AutoCAD Electrical Essential Training 中文字幕 AutoCAD Electrical Essential Training 中文字幕AutoCAD Electri ...

  3. 终极AutoCAD大师班:成为AutoCAD专家

    Ultimate AutoCAD Masterclass: Become an Expert in AutoCAD 流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,44. ...

  4. VC++更改主窗口标题栏文字

    VC6: 用VC的AppWizard创建一个名为"Exam"的单文档类型的工程.开始运行时,程序主窗口标题形式如下: Untitled-Exam     其中"Untit ...

  5. 计算机卸载或更改程序软件消失,win10系统控制面板“卸载或更改程序”窗口不显示已安装软件的还原方案...

    win10系统使用久了,好多网友反馈说win10系统控制面板"卸载或更改程序"窗口不显示已安装软件的问题,非常不方便.有什么办法可以永久解决win10系统控制面板"卸载或 ...

  6. 511遇见易语言API模块GetWindowTextA取窗口取标题

    GetWindowTextA窗口_取标题 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性)  复制到lpString的字串 ...

  7. 怎样用计算机添加标题,如何在excel图表中添加标题 如何更改Excel图表中标题的字体...

    在Excel中使用图表可以使表格更具可读性,尤其是可以在几秒钟内找到关键指标.在本教程中,我们将在图例中添加图例,而且还将自定义图例的外观,尤其是字体及其颜色. 在Excel中为图表添加标题 单击要向 ...

  8. vb.net 教程 20-3 控制Ie浏览器 7 获得Ie窗口的标题和网址

    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的. 六.获得Ie窗口的标题和网址 在上一小节,我们创建了从Internet Explorer_Ser ...

  9. autocad连接mysql_访问AutoCAD对象

    Application对象的DocumentManager属性允许我们使用它的MdiActiveDocument属性来访问当前文档,从MdiActiveDocument属性返回Document对象,我 ...

  10. python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)

    引用文章:http://code.py40.com/pyqt5/ 文章目录 简单的例子:创建一个小窗口 应用程序的图标 显示提示语 通过按钮关闭窗口 消息框(关闭窗口确认框) 窗口显示在屏幕的中间[居 ...

最新文章

  1. 功率放大器的有记忆失真特性
  2. 返乡置业?多数人将掉入陷阱
  3. 【AI研究院】360无死角认识一下女神的线上美容院-“美图秀秀”
  4. 蚂蚁研发流程大公开:上百个开发者也能同时在一个 App 环境内进行高效开发
  5. oppo的sd卡在哪里打开_oppo的sd卡在哪里打开
  6. 第10课 skymvc 企业网站制作
  7. c# checkbox 外观_2020款日产蓝鸟上市!外观比大众朗逸漂亮,油耗6L 国六,9.59万_搜狐汽车...
  8. 搜索不包含关键词_关键词排名:搜索同一个关键词,每次的排名却不一样?
  9. 日期格式有0_JavaScript 时间戳转成日期格式
  10. Mschart应用。
  11. 什么是大数据?65页PPT+50分钟视频讲解,小白也能看懂
  12. [存档]CxServer系统
  13. 小红书商品详情API接口(商品详情页面数据接口)
  14. 跨境电商亚马逊品牌卖家将会面临的机遇和挑战(一)
  15. 《dota2》地精修补匠tinker路人攻略
  16. 数据平台开发是做什么的?需要具备哪些能力
  17. 【JDK源码剖析】Queue--队列 PriorityQueue--优先队列
  18. Android AES 加密、解密
  19. OGNL表达式语言介绍
  20. HTML使用 crypto-js-AES 加密

热门文章

  1. LINQ to XML:如何读写XCData
  2. Redis windows端连接虚拟机内Redis各种问题
  3. 还在搞三层架构?DDD 分层架构了解下!
  4. 再见!RESTful...
  5. 离职阿里4年后,我给年轻人的7点建议
  6. 10 个实战与面试【常用 Shell 脚本】编写
  7. Linux进阶之环境变量文件/etc/profile、/etc/bashrc、/etc/environment
  8. Linux服务之cobbler批量部署篇
  9. Tomcat 简单容器化
  10. shell基础之for循环语句