SOUI中事件中心的使用

2021-08-10 02:25:58 字數 1733 閱讀 2967

在soui中為了方便將工作者執行緒中的處理結果及時反饋到ui執行緒設計了事件中心來解決此類問題。

在使用事件中心需要注意的事項如下:

snotifycenter *pnotifycenter = new snotifycenter;

delete pnotifycenter;

//向事件中心新增事件

snotifycenter::getsingleton().addevent(eventid(eventloginmodule2ui_acclogin));

snotifycenter::getsingleton().addevent(eventid(eventloginmodule2ui_gettoken));

snotifycenter::getsingleton().addevent(eventid(eventloginmodule2ui_smslogin));

事件處理函式定義:

protected:

bool oneventloginmodule2uiacclogin(eventargs* e);

bool oneventloginmodule2uismslogin(eventargs* e);

bool oneventloginmodule2uigettoken(eventargs* e);

處理函式跟事件繫結:

protected:

//soui訊息

event_map_begin()

event_handler(evt_loginmodule2ui_acclogin, oneventloginmodule2uiacclogin)

event_handler(evt_loginmodule2ui_smslogin, oneventloginmodule2uismslogin)

event_handler(evt_loginmodule2ui_gettoken, oneventloginmodule2uigettoken)

event_map_end()

class eventloginmodule2ui_acclogin : public tpleventargs

enum;

ds_loginsaasretinfo* m_loginsaasretinfo;

};class eventloginmodule2ui_smslogin : public tpleventargs

enum;

ds_loginsaasretinfo* m_loginsaasretinfo;

};class eventloginmodule2ui_gettoken : public tpleventargs

enum;

ds_kftokeninfo* m_pkftokeninfo;

};

eventloginmodule2ui_gettoken* pevt = new eventloginmodule2ui_gettoken(this);

pevt->m_pkftokeninfo = pinfo;

snotifycenter::getsingleton().fireeventasync(pevt);

pevt->release();

事件id定義為乙個全域性的巨集。

SOUI的按鈕訊息事件

使用常規的控制項 以button為例 首先在工程目錄下的 uires 資料夾中找到 xml 資料夾 然後找到 dlg main.xml 這個檔案 可以自定義名稱的,這裡我是使用嚮導生成的 檔案修改如下 第乙個ui介面 按鈕新增 button 嚮導中生成的好像不包括name 這個屬性很重要,要加上!這...

SOUI中快樂的使用32 64位程式設計

目前64系統已經普及,但是市面上仍不少軟體跑在32上。順應時代。soui一直都可以32,64使用,不過實際使用過程中,可能仍有實際情況不得不保留32位的軟體系統。以前的soui只能單獨使用32或64位,無法同時使用 當然有經驗的同學肯定自己已經配置好了 為方便大家,soui開始支援同時編譯32 64...

C 中事件的使用

用乙個例子來說明事件的使用。建立乙個簡單的類,名為filewatch,包含事件onfilechange。該類將檢查在執行應用程式的目錄 當前 目錄,通常是專案名 bin debug 下,是否存在檔案test.txt。如果檔案被刪除或建立,都將觸發事件。同時提供乙個方法monitorfile以不斷地查...