什么叫case这个消息,然后创建呢? 额,这个很简单的,在回调函数中,在edit的id选项中,如果消息类型是WM_NOTIFICATION_CLICKED则创建或显示软键盘的对话框。如果WM_NOTIFICATION_RELEASED或者WM_NOTIFICATION_MOVED_OUT则删除或者隐藏软键盘。
static void _cbFrame(WM_MESSAGE pMsg) {//Framewin的回调函数
switch (pMsg->MsgId) {
case WM_NOTIFY_PARENT://来自子窗口的notify
if (pMsg->Datav == WM_NOTIFICATION_RELEASED) {//widget的Notification codes存储在Datev中;判断子窗口(控件)是否释放
int Id = WM_GetId(pMsg->hWinSrc); //得到源控件ID(子窗口ID)
if (Id == GUI_ID_CLOSE) {//判断控件是否要关闭framewin(这里是指“关闭按钮”)
//创建你想要的d出窗口
}
}
什么叫case这个消息,然后创建呢?
额,这个很简单的,在回调函数中,在edit的id选项中,如果消息类型是WM_NOTIFICATION_CLICKED则创建或显示软键盘的对话框。如果WM_NOTIFICATION_RELEASED或者WM_NOTIFICATION_MOVED_OUT则删除或者隐藏软键盘。
这是资源链表的创建
原型
<WIDGET>_Handle <WIDGET>_CreateIndirect(
const GUI_WIDGET_CREATE_INFO pCreateInfo,
WM_HWIN hParent,
int x0,
int y0,
WM_CALLBACK cb
);
参数 描述
pCreateInfo 指向GUI_WIDGET_CREATE_INFO结构的指针 (见下文)。
hParent 父窗口的句柄。
x0 小工具最左侧的像素 (在父坐标中)。
y0 小工具最顶端的像素 (在父坐标中)。
cb 指向回调函数的指针。
GUI_WIDGET_CREATE_INFO数据结构在对话框资源表中定义如下:
typedef struct {
GUI_WIDGET_CREATE_FUNC pfCreateIndirect; // Create function
const char pName; // Text (not used for all widgets)
I16 Id; // Window ID of the widget
I16 x0, y0, xSize, ySize; // Size and position of the widget
I16 Flags; // Widget-specific flags (or 0)
I32 Para; // Widget-specific parameter (or 0)
U32 NumExtraBytes; // Number of extra bytes usable
// with <WIDGET>_SetUserData &
// <WIDGET>_GetUserData
} GUI_WIDGET_CREATE_INFO;
怎么创建?
主要也就是控件不同,坐标不同,状态不同。
推荐一个工具
ucguibuilder40
可以可视化创建。有些控件没有的可以先创建其他的,自行修改。
代码就不贴了,给你个思路,其实很简单的,就是在回调函数里做刷新数据的工作就行了。
可以自己定义个消息,AD数据有变化了,发一个消息给回调函数,然后在回调函数里进行数据的改变即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)