1.在main.c中sdl_main()中sceneload();前新增非介面函式(init)
2.在init函式中開啟訊息佇列
mqid = mq_open("anonymqueue", o_creat | o_nonblock, 0666, &qattr);
其中各引數如下:
typedef structstruct_ui_eve;
static mqd_t uiinfoqueue = -1;
mqd_t mqid;
struct_ui_eve ev_send;
ev_send.type = 123;
struct mq_attr qattr;
qattr.mq_flags = 0;
qattr.mq_maxmsg = 10;
qattr.mq_msgsize = sizeof(struct_ui_eve);
注意:對列名在linux2.6下要在最前面加/,&qattr可以為null,
但在ite sdk下不適用(&qattr可以寫0)
3.在要傳送的函式中傳送事件
mq_send(mqid, (const char *)&ev_send, sizeof(struct_ui_eve), 0)
4.在scene.c中,scenerun()中itusceneupdate前新增接受已定義事件函式
5.在接收自定義事件函式中接收佇列事件
mqd_t mqid = mq_open("anonymqueue", o_rdonly | o_nonblock);
if (mqid == -1)
printf("mq_open error\n");
struct_ui_eve ev_rece;
mq_receive(mqid, (char *)&ev_rece, sizeof(struct_ui_eve), 0);
6.此時自定義事件就被傳送給介面了,只需要在guidesigned中新增對應的action
自定義事件
public event eventhandleropenprogress private void onopenprogress progresseventargs e if openprogress null openprogress this,e public class progressev...
自定義事件
簡單的自定義事件 首先定義乙個類來監聽客戶端事件,這裡我們監聽鍵盤的輸入。定義乙個委託。public delegate void userrequest object sender,eventargs e 前面的object用來傳遞事件的發生者,後面的eventargs用來傳遞事件的細節,現在暫時沒...
清楚地 自定義事件 流程
定義自定義事件的引數 public sealed class customereventargs eventargs public datarow currentdatarow 自定義控制項類 public partial class treeviewfolder usercontrol 第三步 何...