最近试试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项目。
这里简单说明怎样将其自动生成的
CToolBar m_wndToolBar; 改为基于Prof-UIS的CExtToolControlBar m_wndToolBar;
(1). 在StdAfx.h中增加 #include <Prof-UIS.h>,当然VC环境中include,lib,src等目录先设置好。
(2). 将CToolBar->CExtToolControlBar
(3). 在CMainFrame::OnCreate()中修改代码如下:
修改一:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
改为:
if( !m_wndToolBar.Create(
_T( "Toolbar name" ),
this,
AFX_IDW_TOOLBAR
)
|| !m_wndToolBar.LoadToolBar( IDR_MAINFRAME )
)
修改二:
EnableDocking(CBRS_ALIGN_ANY);
改为:
if( !CExtControlBar::FrameEnableDocking(this) )
{
ASSERT( FALSE );
return -1;
}
运行如图1,ToolBar虽然可以拖动,可是图标怎么看不见?
图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。
图2
如何使得此ToolBar具有不同的风格呢?
需要在InitInstance()中增加其他的代码:
g_PaintManager.InstallPaintManager(
RUNTIME_CLASS(CExtPaintManagerOffice2007_R2_Obsidian)
);
AfxEnableControlContainer();
……
运行如图3。
图3
并将状态条和菜单也改了。见图4。
图4
分享到:
相关推荐
Prof-UIS 开源的MFC界面解决方案
vc 界面库 Prof-UIS的白皮书文档
一个强大的界面库Prof-UIS 一个强大的界面库Prof-UIS
Prof-UIS是一个专门用于制作界面的库。界面美观大方。 注:不好意思。自己已经没分了。
一个强大的界面库Prof-UIS
一个强大的界面库Prof-UIS ,里面包括了各种应用界面的源程序
强大的prof—uis专门用于制作界面的库,结合VC开发出来界面相当漂亮……
强大的界面,各种控件,来自于www.codeproject.com
VC++仿XP风格菜单,一个VCL组件应用实例,菜单做的很漂亮,来自C++ Builder的作品。
专业的界面解决方案;提供了很多很漂亮的界面;而且支持windows 2000, xp,样式
Prof-UIS is an easy-to-use MFC extension library that enables you to deliver Windows applications with a professional and user-friendly interface. More than 200 thoroughly tested and documented C++ ...
超酷界面库profuis-v2.20_freeware.rar
FANUC机器人PROF-017从机断开故障报警处理方法总结
发那科机器人SRVO-037(IMSTP)故障解决办法 发那科机器人PROF-017(从机断开)故障解决办法
prof-uis 293 完整代码,仅供学习交流,否则后果自负。
GE 智能平台 Proficy HMI/SCADA - iFIX(产品样本)rar,GE 智能平台 Proficy HMI/SCADA - iFIX(产品样本)
prof-w02-meeting-business-needs-by-filling-the-cybersecurity-skills-gap 系统安全 威胁情报 安全 系统安全 云安全
prof-t07-the-untold-stor-of-8200-a-launching-point-for-women-in-cybersecurity_title_apply_slides AI 数据分析 数据安全 数据安全 应急响应