我没有尝试过没有GUI设计器的GUI,现在我正在学习如何使用 Palm OS Programming:The Developers Guide 这本书来开发Palm OS应用程序。在其上我有这个代码,它是一些GUI项目的声明:
#define HelloWorldForm 1000
#define HelloWorldButtonButton 1003
#define HelloWorldMenuBar 1000
#define GoodnightMoonAlert 1101
#define FirstBeep 1010
#define SecondBeepmore 1000
我想知道一些事情:
答案 0 :(得分:3)
这些可能是与GUI元素相关联的“人类可读快捷方式”(似乎是C宏的形式):所述元素可能仅通过主机系统中的整数引用。您没有向我们提供有关此处使用的详细信息。
这种技术的优点通常与更容易维护(以及其他)有关。
答案 1 :(得分:3)
他们的资源ID。您不是必需来定义此类宏,但如果不这样做,则在尝试引用代码中的UI小部件时,您将不得不使用原始整数值。例如,您获得指向UI控件的指针的典型方法是调用:
FormType* formP = FrmGetActiveForm();
UInt16 index = FrmGetObjectIndex(formP, objectID);
ControlType* controlP = FrmGetObjectPtr(formP, index);
您需要获取UI小部件的指针,以便执行诸如读取其状态(例如复选框),更改文本标签,动态显示或隐藏它们等操作。
资源ID与您从FrmGetObjectPtr
返回的指针所执行的操作之间没有类型安全性;您有责任跟踪哪个ID对应于哪种控件(通常的做法是使用描述性名称)。
答案 2 :(得分:1)
它们提供了一些好处。
LoadForm(1000);
或LoadForm(HelloWorldForm);
这样的电话吗?