1 設計之初就是想實現類似於辦公室玻璃牆的一樣的白板,可書寫,透明,還可以新增自己需要的工具
2 除了duilib不依賴其他的介面庫,可以插入到任何工程中。
1 常規的圖形(矩形,橢圓,直線,箭頭,三角形,菱形)
2 圖形的二次編輯(移動,刪除,新增)
3 圖形儲存功能,通過序列化反序列化可以將圖形儲存成json
4 由於本視窗是透明視窗,可以覆蓋在其他的視窗上面,實現標註功能
注:測試demo沒有寫太詳細,可以自己摸索
部分介面:
class
export canvasview
;virtual
void
onaddimage
(const
char
*url,
const
char
*context)
;//傳送新增的筆跡資料給第三方呼叫者
virtual
void
sendpenpath
(innerpeninfo &peninfo)
;//滑鼠以及按鍵事件的回傳
virtual
void
onmousekeymessage
(unsigned
int umsg,
unsigned
int wparam,
long lparam)
;virtual
void
onmousewheelmessage
(unsigned
int umsg,
unsigned
int wparam,
long lparam)
;virtual
~delegate()
};//供第三方呼叫的介面剖
public
:virtual
~canvasview()
virtual
void
setpencolor
(dword color)=0
;virtual
void
setpensize
(int pen_size )=0
;//設定選擇的工具
virtual
void
selecttools
(tooltypes tool_type)=0
;//建立畫布
virtual
bool
createcanvas
(int width,
int height)=0
;//重新設定對映範圍
virtual
void
resetcanvas
(int width,
int height)=0
;//設定畫板的位置
virtual
bool
setcanvasviewpos
(int x,
int y,
int width,
int height)=0
;virtual
long
getcanvasviewhwnd()
=0;virtual
void
pageto
(int page)=0
;//設定縱向偏移量 scroll true 滾動條引起的 false 翻頁引起的
virtual
void
setoffset
(int offsety,
bool scroll=
true)=
0;virtual
void
addimage
(char
*url,
char
*filepath,
char
*info)=0
;virtual
void
hide()
=0;virtual
void
show()
=0;//序列化
virtual std::string marshal()
=0;//反序列化
virtual
void
unmarshal
(std::string grapics_data)=0
;virtual
void
changecontrols
(changetype type, std::string change_infos)=0
;virtual
void
seteditable
(bool enable)=0;};
基於duilib的虛擬列表實現
本文由作者鄒啟文授權網易雲社群發布。在郵箱大師選擇duilib作為ui開發庫後,我們面臨這樣乙個問題。隨著時間的積累,使用者資料會越來越多,如何保證我們的軟體在展示這些資料時依然保持非常好的體驗?原生態duilib列表的實現是,資料與控制項 列表的每一項 一一對應,即有多少資料,便有多少控制項。通過...
用白板解決專案管理和團隊溝通
1 任務板 任務是分解到手頭的實際的工作 把要做的任務,正在做的任務和已經完成的任務,用簡單的貼士貼在白板上.不同的顏色表示不同的重要程度.可以畫一些橫的泳道來表明任務應該是誰來完成.2 需求特性板 需求特性是軟體大的功能需求,通常按照月份來進行歸類.3 敏捷開發需要把軟體設計分成三個部分 特性 用...
尋找白板上的便籤條
題目的大概意思就是這樣的白板,尋找上面的各種便籤條。我找到了橘色的,結果是這樣 是這樣 mat src imread gray stickers.png mat temp vector planes cvtcolor src,src,color bgr2hsv split src,planes op...