在我們的gui系統實現中,為了使gui系統的風格可以靈活改變,我採用了lua指令碼化來實現。
具體實現:
建立lua的指令碼函式,int lua_adddialog(lua_state * l);int lua_addbutton(lua_state * l);等,在lua中可以直接新增dialog,button,這樣gui初始化的位置,大小,等都可以在指令碼中寫好,不同的gui介面需求就填入不同的資料。
關於gui事件的處理,也採用指令碼觸發原理。在指令碼建立gui元件的時候給每個元件賦予乙個id,然後在程式中給乙個統一介面
如下:class guievent
private:
static guievent * m_pinstance;
};在指令碼中
function onclick(n)
end來具體接收和處理響應。
例如:addbutton() //id = 1;
function onclick(n)
if n == 1 then
//處理id為1的button事件
endend
關於C 中的GUI執行緒
大家知道,c 中線程分兩種,一種是工作者執行緒,另外一種就是gui執行緒,至於他們這間的區別大家可以上網上查詢 這裡我只是說明一下,建立gui執行緒時,需要注意的地方。有些和視窗相關的執行緒,最好是放在gui執行緒裡,因為和視窗或是特殊控制項有關的初使化操作,gui執行緒已經幫你合理的優化了,如果用...
Vector在Java程式設計中的應用
vector 類提供了實現可增長陣列的功能,隨著更多元素加入其中,陣列變的更大。在刪除一些元素之後,陣列變小,增長長度是原來的一倍。他支援程序同步.vector 有三個建構函式 public vector int initialcapacity,int capacityincrement publi...
關於」 」操作符在lua中table的運用
首先,先看乙個 運用的例子 tags tags tags 1 4 這裡表示在表tags最後,插入元素4,因此表tags元素個數將會為4。在lua中 表示返回表長度,類似c 中的getlen 函式,不過,對於 操作,有幾點需要注意。1.只有當鍵值是連續的數值鍵值時,返回值才是有意義的。例如 local...