介面庫Prof UIS初探學習

2021-06-19 16:52:53 字數 2545 閱讀 3493

近試試prof-uis介面庫(www.prof-uis.com)的用法,其幫助感覺不是很好。結合其samples,把一些學習筆記記錄如下。

先說一下prof-uis。在執行其samples或者將這個介面庫用到其它project中之前,需要編譯profuisdll(對於靜態庫profuislib),但是執行某些samples,比如skinable,提示說需要用到profskindll,於是先編譯它,但是又需要libpngdllcrt-d.lib,=>先編譯libpng(編譯時選擇libpng-win32 used libs debug(dll crt))

比如要編譯skinable,整個過程:(好像編譯後執行出錯,why?)

1.先編譯zlib和libpng (這裡選擇build->set active project configuration中為debug,dll的。注意,這樣編譯生成的檔案是zlibdllcrt-d.lib和libpngdllcrt-d.lib。如果選擇其他,生成的檔名是對應的。)

2.然後編譯profskindll (對應上面的,選擇win32 mbcs debug)

3.現在可以編譯skinable了。

(編譯是注意設定好是debug,還是realse,是static還是非,是mbcs還是ansi或其他,注意看看set active project configuration就知道了。)

將已有的mfc程式移至到基於prof-uis(以sdi程式為例)。

1.在vc6中建sditesst的sdi專案。

這裡簡單說明怎樣將其自動生成的

c*******  m_wnd*******; 改為基於prof-uis的cexttoolcontrolbar  m_wnd*******;

(1). 在stdafx.h中增加 #include ,當然vc環境中include,lib,src等目錄先設定好。

(2). 將

c*******->cexttoolcontrolbar

(3). 在cmainframe::oncreate()中修改**如下:

修改一:

if (!m_wnd*******.createex(this, tbstyle_flat, ws_child | ws_visible | cbrs_top| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic) ||!m_wnd*******.load*******(idr_mainframe))

改為:

if( !m_wnd*******.create(

_t( "******* name" ),

this,

afx_idw_*******

|| !m_wnd*******.load*******( idr_mainframe )

修改二:

enabledocking(cbrs_align_any);

改為:

if( !cextcontrolbar::frameenabledocking(this) )

assert( false );

return -1;

執行如圖1,*******雖然可以拖動,可是圖示怎麼看不見?

後來看其samples。需要在initinstance()函式中增加如下**:

verify(

g_cmdmanager->profilesetup(

__prof_uis_project_cmd_profile_name

afxenablecontrolcontainer();

當然需要定義如下的巨集:

#define __prof_uis_project_cmd_profile_name _t("profsdi-command")

#define __prof_uis_project_dlg_persist_reg_key _t("profsdi-resizable-dialog ")

然後在oncreate中增加:

if (cframewnd::oncreate(lpcreatestruct) == -1)

return -1; ……

verify(

g_cmdmanager->profilewndadd(

__prof_uis_project_cmd_profile_name,

getsafehwnd()

verify(

g_cmdmanager->updatefrommenu(

__prof_uis_project_cmd_profile_name,

idr_mainframe

);(這一部分好像也不需要)

執行如圖2。

如何使得此*******具有不同的風格呢?

需要在initinstance()中增加其他的**:

g_paintmanager.installpaintmanager(

runtime_class(cextpaintmanageroffice2007_r2_obsidian)

afxenablecontrolcontainer();……

執行如圖3。

並將狀態條和選單也改了。見圖4。

圖4

騰訊介面庫初探

dskinlite 是一款輕量級的c 庫,使用xml檔案根據規則來管理gdi資源如顏色,字型,並描述介面構成,最大程度的將介面和程式邏輯分離,同時為軟體 更換,換色等提供基礎支援。dskinlite將介面構成元素抽象為線條元素,矩形元素,元素,文字元素,並提供相應規則來使用這些元素 組合 介面。ds...

robotframework介面測試初探1

robotframework這個框架最近很多人在使用它,大部分是和selenium結合的,大概看了下,然後發現這個做介面測試感覺也還不錯,初步研究了下 環境安裝 robotframework這個環境的安裝,網上搜下,有很多詳細的步驟 庫的安裝 初步的暫時需要這兩個 requests和requests...

開發SAP介面程式初探

sap r 3系統是業界最先進 最穩定的erp系統,國際和國內大型企業採用該系統的比例遙遙領先於其它erp系統的總和。sap r 3內建了二次開發平台,使用的開發語言叫做abap,是一種類似於cobol的程式語言。abap在報表輸出方面功能相對較弱 只能按行列印在螢幕上或者匯出到excel中處理 所...