频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

应用MFC开发高级应用程序

来源:pcvc.net 作者:苟建兵 出处:巧巧读书 2007-09-28 进入讨论组
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 下一页 

  五、使用3D控制

  毫无疑问,3D控制的使用可以显著提高Windows应用程序的界面友好性,目前,许多流行的Windows应用程序都使用了3D控制,典型的如Microsoft公司的Office系列软件,而且,在Windows 95Windows NT 4.0中,3D控制更是作为操作系统的一部分直接提供,这意味着在其上运行的软件不需要作任何特殊处理,就具有3D界面效果,但是,很遗憾的是,在Windows 3.x中,除了命令按钮控制使用3D控制以外,其余所有的控制,如编辑框,列表框,检查框等都只使用2D控制,要想使用3D控制,程序设计人员就必须在自己的程序中作一定的修改,考虑到目前3D效果的流行,这点努力是值得的。为了支持3D效果,Microsoft公司提供了一个专门用于3D控制的动态连接库,即CTL3D.DLL,但是在其Visual C++中却没有如何使用3D控制的讨论,并且,Visual C++也不直接支持3D编码,因为它不包括使用3D控制所必须的头文件。但是,这并不意味着在Visual C++中不能使用3D控制,只不过用户需要从其它地方获取技术支持罢了。由于使用的是动态连接库机制,因此,任何其它语言提供的3D头文件和CTL3D.DLL的输入库都是可用的。作者使用的就是Borland公司的Borland C++中提供的CTL3D.H和CTL3D.LIB。在C/C++中使用3D控制的方法也有很多种,在这里,为节约篇幅,只讨论与本文相关的主题,即使用MFC编程时如何使用3D控制。

  在MFC的所有对话框中使用3D控制可以遵循如下步骤:

  1. 在CWinApp::InitInstance函数中调用Ctl3dRegister和Ctl3dAutosubclass函数:

Ctl3dRegister(AfxGetInstanceHandle());
Ctl3dAutoSubclass(AfxGetInstanceHandle());

  值得一提的是,在AppWizard产生的应用框架的CWinApp::InitInstance中有一个函数调用为SetDialogBkColor,此函数的作用是将所有对话框的背景颜色设置为灰色,这个功能与3D界面实现相同的功能,可以移去此语句。

  由于CTL3D在初始化时读入所有的系统颜色并自己维持,为了使应用程序能够正确反映系统颜色的变化,MFC应用程序可以在WM_SYSCOLORCHANGE消息中调用Ctl3dColorChange函数。

  2. 在MFC应用程序的CWinApp类中的ExitInstance函数中调用Ctl3dUnregister函数,以方便Windows对CTL3D库的正确管理。

  3. 在MFC应用程序的项目文件中加入CTL3D.LIB(可以用IMPORT.EXE产生)。使用上述CTL3D的自动子类化的机制可以大大简化使用3D控制,如果这不满足你的要求,那么你就必须单独在需要使用3D控制的对话框的OnInitDialog()中自行子类化相关的控制类了,典型的如下代码片断所示:

BOOL CMyDialog::OnInitDialog()
{
Ctl3dSubclassDlgEx(m_hWnd,CTL3D_ALL);
return TRUE;
}

  上面讲了在对话框中使用3D效果的办法,如果用户想在非对话框中使用3D控制,典型的在FormView导出类中使用,可以在导出类的OnInitialUpdate函数中进行适当修改,修改的大小取决于你是否使用了3D控制的自动子类化机制。如果使用前面提到的自动子类化方法,那么仅需要在相应的OnInitialUpdate函数中调用Ctl3dSubclassDlg函数了,如下代码片断所示:

void CMyView::OnInitialUpdate()
{
Ctl3dSubclassDlg(m_hWnd,CTL3D_ALL);
}

否则,则需要修改如下:

void CMyView::OnInitialUpdate()
{
Ctl3dSubclassDlgEx(m_hWnd,CTL3D_ALL);
}
URl收藏 http://www.qqread.com/vc/d199731.html 更多文章 更多内容请看Wlan组网----家庭专题专题,或进入讨论组讨论。
上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 下一页 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章