duilib虛擬視窗使用

2021-08-15 20:45:53 字數 1067 閱讀 9086

方便每乙個tablayout的介面都可以用乙個類去處理;避免將所有的訊息寫到同乙個主視窗類中;方便維護;

主視窗**:

建構函式中新增

cetcdmainwnd::cetcdmainwnd()

xml配置

類中新增訊息處理類的成員變數

cpatmanagepage m_patmanagepage;
訊息處理類的宣告與定義

.h檔案

#ifndef _etcd_patmanage_page_h__

#define _etcd_patmanage_page_h__

#include "stdafx.h"

class cpatmanagepage : public duilib::cnotifypump

;#endif

.cpp檔案

#include "stdafx.h"

#include "etcdpatmanagepage.h"

dui_begin_message_map(cpatmanagepage, cnotifypump)//定義訊息

dui_on_msgtype(dui_msgtype_click,onclick)

dui_on_msgtype(dui_msgtype_selectchanged,onselectchange)

dui_end_message_map()//定義訊息

cpatmanagepage::cpatmanagepage(){}cpatmanagepage::~cpatmanagepage(){}void cpatmanagepage::init(cpaintmanagerui *ppaint, hwnd hwnd)void cpatmanagepage::onclick(tnotifyui& msg) //訊息處理函式void cpatmanagepage::onselectchange(tnotifyui &msg)//訊息處理函式{}

duilib 模態視窗

void cmaindlg dotask pdlg create 的引數1,開始寫成了null,子視窗彈出後,還可以操作主視窗.因為要彈出模態對話方塊,跟進 pdlg showmodal 看到了duilib禁止主視窗的 才想到引數1應為父視窗視窗控制代碼.可以看出,當要彈出非模態視窗時,可以將pdl...

duilib 視窗的分層顯示控制

需求中要求,taska的視窗在彈出後,必須前置在其他子視窗上面。剛開始,試驗了2種方法不理想.用setwindowpos改變子視窗的z軸,這 太大了.主視窗的前置和後置的控制和任務視窗的彈出有衝突.將taska建立在最後彈出的視窗上,處理起來繁瑣,不穩定。如果taska的父視窗消失了,但是這時要求t...

基於duilib的虛擬列表實現

本文由作者鄒啟文授權網易雲社群發布。在郵箱大師選擇duilib作為ui開發庫後,我們面臨這樣乙個問題。隨著時間的積累,使用者資料會越來越多,如何保證我們的軟體在展示這些資料時依然保持非常好的體驗?原生態duilib列表的實現是,資料與控制項 列表的每一項 一一對應,即有多少資料,便有多少控制項。通過...