DuiVision開發教程 9 動態建立控制項

2021-07-02 16:21:08 字數 755 閱讀 8733

cduibutton* ptoolbtn = static_cast(duisystem::createcontrolbyname(l"button", m_pdlg->getsafehwnd(), m_pduiobject));

if(ptoolbtn)

這段**首先通過duisystem提供的動態建立控制項的函式(createcontrolbyname)來建立乙個控制項(建立時候需要指定控制項型別名,例如按鈕控制項就是button、所在的視窗的控制代碼、父控制項指標)。

建立之後再呼叫控制項的函式來設定控制項的一些屬性,需要特別注意的是控制項的位置資訊的設定,必須使用位置字串的方式來設定(對應控制項的pos屬性),因為位置字串是可以根據父控制項的位置資訊計算出控制項的實際位置的,如果不採用這種方式,直接指定控制項的位置,則可能會因為位置自動計算時候沒有相關的資訊導致最後計算不出真正的位置。

位置字串設定需要呼叫setposstr函式進行設定,注意最後一定要呼叫onpositionchange函式,這個函式會真正進行一次位置計算,這樣才能使控制項顯示在正確的位置。

下面這段**是demo程式中動態建立控制項的乙個示例:

// 演示在div中動態新增子控制項(新增到基礎控制項的編輯框頁面)

ccontrolbase* pdiv = (ccontrolbase*)getcontrol(_t("tab.control.4"));

if(pdiv)

}

藍螞蟻工作室主頁:

RPA之家教程 9 手動和網路錄製

手動和網路錄製 本週,我們將繼續進行手動錄製,網路錄製和citrix錄製。如果您仍然不確定是什麼錄音,請先檢查上週的部落格文章,然後再繼續。手動錄製 手動錄製只是新增通常在錄製會話中未捕獲的活動的過程。示例包括右鍵單擊,將滑鼠懸停在元素上,讀取資料等。這些活動在記錄控制器中可用,一旦我們單擊uipa...

(9) 手動實現reverse函式

簡單介紹5種實現方法 1.中心思想 從第乙個開始,相近的兩兩互換,然後除去最後乙個存入空列表,遞迴後相加 lists z v o b a def fz ls lsn global i if len ls 1 return ls for i in range len ls 1 ls i ls i 1 ...

SQL教程重溫(9)

auto increment 會在新記錄插入表中時生成乙個唯一的數字。我們通常希望在每次插入新記錄時,自動地建立主鍵欄位的值。我們可以在表中建立乙個 auto increment 字段。下面的 sql 語句把 persons 表中的 id 列定義為 auto increment 主鍵字段 creat...