`
javababy1
  • 浏览: 1254926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Allegro学习笔记 里程碑20070813

阅读更多

通过前22个例子的学习,我已经掌握了基本的GUI搭建方法,并且可以自由的继承或新建我想要的proc。但是还有一些关于GUI的东西是在Allegro的例子中未曾提到的。我将自己的研究记录于此,希望有朋友与我一起探讨这些问题。同时这也是Allegro中文教程系列的里程碑之一,作为对GUI研究的完结篇。

1、如何动态添加、删除组件?
2、如何实现“多窗口”?

如果只是搭建静态的GUI(不需要改变控件的数量),无论多么复杂变态的组件,根据MSG机制都可以编写出来。但是关于问题1,则需要更深层次的理解DIALOG。

如果有在DOS下做界面的经历,你就会明白在设计期“调整界面”是件多么麻烦的事情--每次的改动都需要重新编译,而且你不能直观的看到改动,必须在DIALOG数组中一个数字一个数字的调整。或早或晚,你都会萌生一个想法--做个界面编辑器(GUI EDITOR)。它可以实现:
1、加载那些图片和“控件”,在这里控件不需要是实际的东西,只需要表示它是什么类型的就可以了。
2、这些对象可以自由拖动,对齐,等等等等...
3、根据对象的坐标、类型等信息直接构造可用的Code。
事实上这并不是一个非常复杂的工作--如果你解决了对象的拖动和多选。你可能需要一个额外的数组或链表来储存当前被选则的对象或对象群。

我不想具体讨论GE的制作流程,但是“额外的数组或链表”的思想可以运用到我们的GUI之中--动态创建。你可以通过动态构建DIALOG数组(或包含DIALOG对象的结构体数组)的方式来生成一个新的界面,并通过popup_dialog来显示。OK,这是我们第1次接触popup_dialog,它和do_dialog很相似,不过中文版帮助文档3.1中的翻译很不好理解,因此我来举几个例子,你就明白了:
1、do_dialog(a1,-1);
其中a1有个过程的 dp3调用
do_dialog(a2,-1);
那么首先关闭了a1,然后显示a2,当你ESC之后,直接关闭a2。
2、do_dialog(a1,-1);
其中a1有个过程的 dp3调用
popup_dialog(a2,-1);
那么首先暂停do_dialog(a1),再显示a2,当你ESC之后,关闭a2,再启动do_dialog(a1)。

也可以通过init_dialog()、updata_dialog()、shutdown_dialog()来创建自己的do_dialog()。但是关于这个方法,我还没有具体的研究过。

不过有时候需要更加灵活的来处理新建的问题。比如只有1个或几个控件需要添加。为了达到此目的,必须先彻底了解Allegro GUI的实现方法。

Allegro GUI 需要一组DIALOG对象,然后使用do_dialog方法来将它们显示出来。你想说什么?直接将新构造的DIALOG对象添加到数组里吗?不错的主意,但是运用起来则非常复杂,记住一个忠告:“永远都要知道自己在处理的是do_dialog发送的什么消息”!do_dialog是死循环,想在do的过程中更改DIALOG数组,你必须巧妙的处理和发送各种消息。或者构造一个单独的DIALOG,并给它发消息以期望他能显示,但是你必须时刻提醒你最初响应的是do_dialog发送的消息,而不是自己发送的消息。

虽然这样做很麻烦,不过如果你真的需要,比如点击一个按钮,出现一组文字什么的,虽然全部的消息你都需要注意,但是你可以只重点关注以下几种:
1、MSG_START 这个消息通知对象做初始化工作
2、MSG_END这是个结束的消息,当do_dialog结束时发送,对于一个新的标准proc你可以通过发送MSG_END来初始化它--虽然do_dialog并没有结束。
3、MSG_CLICK 响应这个消息唯一需要注意的是:你需要定位是哪个对象被点击了。因为DOS下没有窗口句柄的概念,因此你只能通过坐标系统来定位,也可以添加一些标志量来辅助这个工作--当然是添加到“额外的数组或链表”,方便动态构造。
4、MSG_DRAW 太重要了,你必须仔细考虑如何响应这个消息~
5、MSG_MOUSEGET/MSG_MOUSELOST 鼠标进入或离开的响应,焦点也有类似的消息。

除了关于响应消息之外,你必须仔细考虑[何时]发送[什么]消息给[哪个]对象。这个策略由自己来定。

至此,我们可以彻底的、完全的、搭建我们想要的任何界面了!

分享到:
评论

相关推荐

    Allegro学习笔记之7_焊盘设计

    Allegro学习笔记之7_焊盘设计 Allegro学习笔记之7_焊盘设计是Cadence软件设计教程的一部分,主要介绍Allegro系统中的焊盘设计。焊盘设计是PCB设计的重要组成部分,涉及到零件的管脚(Pin)和焊盘的设计。 在...

    Allegro学习笔记

    Allegro学习笔记主要围绕如何在使用Cadence Allegro软件进行PCB设计后,导出Gerber文件和钻孔数据文件,以供PCB制造厂商使用。Gerber文件是PCB制造业的标准光绘文件格式,而钻孔数据文件则用于指导PCB钻孔的过程。 ...

    Allegro学习笔记系列

    Allegro学习笔记系列 Allegro学习笔记系列是为初学者准备的一系列学习笔记,旨在帮助初学者快速掌握Allegro软件的使用和pcb设计的基础知识。本系列笔记中,我们将从基础的Gerber文件格式开始,逐步深入到Allegro...

    ALLEGRO学习笔记

    《ALLEGRO学习笔记》 在电子设计自动化领域,ALLEGRO是一款广泛应用的PCB设计软件,由Cadence公司开发。这是一份集多年经验于一体的ALLEGRO学习笔记,旨在帮助初学者快速掌握这款强大的工具。 首先,我们从第一章...

    Orcad_Capture CIS_Allegro学习笔记

    Orcad_Capture CIS_Allegro学习笔记 Orcad_Capture CIS_Allegro是一款专业的PCB设计软件,旨在帮助用户快速设计和开发电子电路板。下面是Orcad_Capture CIS_Allegro学习笔记中涉及的一些重要知识点: 1. Q&A:...

    Allegro学习笔记之6——热风焊盘

    ### Allegro学习笔记之6——热风焊盘 #### 知识点一:焊盘的基本概念 在电子设计自动化(EDA)软件中,焊盘(Pad)是连接元器件引脚与电路板的重要组成部分。在Protel这类软件中,定义焊盘较为简单,只需要设置...

    Allegro学习笔记——PCB设计

    总结来说,Cadence Allegro的学习笔记涵盖了软件使用过程中的关键环节,包括焊盘设计、操作选取、敷铜设置、文件格式等重要知识点。通过对比Protel等其他制板软件,记录了Allegro在封装制作、操作逻辑、敷铜操作和...

    ALLEGRO学习笔记(注释).doc

    总之,Allegro 16.2的学习涵盖了PCB设计的全过程,从基础的封装创建到复杂的布局布线,都是工程师必备的技能。通过这份笔记,你可以逐步掌握Allegro的各项功能,为高效、高质量的PCB设计打下坚实基础。

    Allegro学习笔记5,层叠

    ### Allegro层叠详解 #### 一、层叠的基本概念 在电子设计自动化(EDA)领域,Allegro是一款广泛使用的PCB设计软件,尤其在复杂电路板设计方面表现出色。随着电路复杂度的增加,单层或双层PCB往往无法满足设计需求...

    Cadence Allegro 16.3 学习笔记

    Cadence Allegro 16.3 学习笔记 本资源为 Cadence Allegro 16.3 的学习笔记,涵盖了该软件的主要功能和工具。Cadence Allegro 16.3 是一款功能强大的 PCB 设计软件,提供了诸多新功能和改进的界面。 1. Allegro ...

    Allegro16.6学习笔记

    以下将从Allegro16.6学习笔记中提炼的关键信息,对知识点进行详细说明。 首先,正片(Positive Image)和负片(Negative Image)是PCB设计中的两个概念。在正片中,设计的图形为铜层,即设计中所见即为铜皮,而在...

    Allegro学习笔记汇编.pdf

    Allegro是一款强大的PCB设计软件,用于创建和编辑电路板布局。在电子组装和PCB制造行业中,Gerber文件是至关重要的,因为它们包含了电路板的所有层信息,可供制造商用来制作精确的印刷电路板。以下是对Allegro中导出...

    cadence--allegro-16.6入门学习笔记

    这份Allegro 16.6的入门学习笔记详细记载了学习期间的重要步骤以及注意点,对初次接触Allegro的设计师而言,提供了极具价值的学习资源和实践指南。通过逐章的介绍,可以对整个PCB设计流程有全面的认识,从基础的封装...

    Cadence ALLEGRO 学习资料

    标题:Cadence ALLEGRO 学习资料 描述:Allegro® PCB Layout System 标签:Cadence ALLEGRO 部分内容:Version15.0 Training Manual Book1 July22,2003 Allegro® PCB Layout System ©1990-2003 Cadence Design...

    Allegro_16.2学习笔记.pdf

    《Allegro 16.2学习笔记》是关于电路设计软件Cadence Allegro 16.2的详细教程,涵盖了从基础操作到高级应用的多个方面。以下是对该学习笔记主要内容的概述: 1. **建封装** - **焊盘创建**:焊盘是元器件与PCB板...

    Candence Allegro学习应用笔记

    ### Cadence Allegro 学习应用笔记 #### Cadence软件基础概述 本章节重点介绍了Cadence软件的基础操作,包括安装过程、OrCAD原理图设计以及Allegro PCB设计等内容。这些知识点对于初学者来说非常重要,因为它们是...

    allegro学习资料

    本压缩包包含的“allegro学习资料”是针对这个软件的一系列教程和指南,旨在帮助用户深入理解和掌握Allegro的使用技巧。 《六国电子网站目录.chm》可能是一个包含了电子行业相关资源的合集,其中包括可能与Allegro...

    allegro16.5 学习资料,非常实用

    Allegro 16.5 学习资料是针对Cadence公司设计工具Allegro的一款专业培训资源,非常适合电子设计自动化(EDA)领域的工程师们进行深入学习。Allegro是一款广泛应用于PCB(Printed Circuit Board)设计的强大软件,它...

    allegro 学习

    allegro 学习 pcbPADS9.2教学 - PADS Layout学习 下文将要学习PADS Layout软件的一些设置和操作步骤 软件的一些设置和操作步骤. 下文将要学习 软件的一些设置和操...

    allegro学习资料.7z

    《Cadence Allegro软件深度学习指南》 Cadence Allegro是一款强大的电路板设计软件,广泛应用于电子设计自动化(EDA)领域。它提供了完整的PCB设计流程,从布局规划到布线,再到仿真验证,帮助工程师高效地完成复杂...

Global site tag (gtag.js) - Google Analytics