c 寫的介面庫是如何運作的?

時間 2021-06-01 03:30:40

1樓:brook zhu

以DirectUI方式為例,主要分為幾個部分:

(1)如何描述介面?

一般介面的布局都會用描述性語言來寫,所以你需要定義乙個自己的介面描述方式及對應的解析邏輯。

(2)如何設計控制項及其層次結構?

介面庫主要是給別人用的,衡量乙個介面庫功能的完善度有個指標就是它提供的控制項夠不夠多。

(3)如何處理好訊息的路由?

DirectUI思想下的控制項其實是乙個繪製區域,想要讓這個繪製區域變成button等控制項,你需要在滑鼠hover,click的時候將對應的訊息傳送給控制項,讓它處理相應的事件,這塊就涉及到訊息的路由問題了。

(4)如何處理好介面的繪製?

繪製這塊的話主要分:Color、Geometric figure、Image、Text這四部分。

(5)如何處理好區域的重新整理?

非必要:

(1)布局控制項的設計

(2)動畫的支援

(3)HighDPI和HighContrast支援

(4)介面邏輯指令碼化

2樓:Xi Yang

其實介面無非就是兩個功能:

1:顯示

2:接受輸入輸出

你圍繞這兩個功能組織好就是了。

知乎有類似的問題:如何用 C++ 從零編寫 GUI? - 姚冬的回答裡面有個非常簡單的教程:www.iki.fi/sol

自己寫庫,如何將介面寫得易用又強大

已登出 好好寫文件,好好寫 demo,好好寫 tests然後你會發現在擼這幾個東西的過程中 並且很多時候你介面怎麼樣還是看場景,比如你擼樹的話,效能要求不高直接 key DFS 搞定一切,效能要求高需要各種 cache,path 和各種策略拼接 另外乙個場景就是擴充套件性和擴充套件性後的錯誤處理了 ...

c 怎麼讓自己寫的庫像標準庫那樣只需include標頭檔案就可以使用而不需要把實現原始碼加入工程裡?

沒辦法像標準庫那樣。標準庫可以只include標頭檔案是因為編譯器會預設鏈結標準庫的實現。其它回答裡面說的header only library,是把實現也一起寫在標頭檔案裡面了。不需要另外的cpp而已。如果你的目的是讓庫方便使用,就做成header only library,或者退一步,提供乙個標...

C 11是如何封裝Thread庫的?

template class Function,class.Args explicit thread Function f,Args args 如果不perfect forward,還是不難的嘛,用不著tuple或者虛函式 歐文韜 lambda表示式的原理 https www.owent.net T...