近試試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中處理 所...