当前位置:文档之家› 7.MFC界面与美化

7.MFC界面与美化


7.2窗口图标与背景修改

7.2.2 修改背景 步骤



1、创建兼容设备描述表 2、创建、装入位图 3、位图选入兼容设备描述表 4、将兼容设备描述表复制到当前设备描述表

详见例7-2

修改背景(实例 7-2) 步骤


1、新建MFC单文档App(ChangeBackground) 2、资源面板添加一个位图资源 3、在CChangeBackgroundView::OnDraw()贴图

2、 MainFrame::OnCreate()

修改窗口外观
视图类中修改 (例7-3 CFra bibliotekangeFrm)


1、 ChangeFrm::PreCreateWindows()


修改WNDCLASS AfxRegisterWndClass() SetClassLong()

2、 ChangeFrm ::OnCreate()
7.3工具栏编程与美化

7.3.1 创建工具栏

增加一个工具栏资源 框架类头文件中声明 CMFCToolBar对象 CMainFrame::OnCreate()中创建工具栏并加载
(可参考向导生成的标准工具栏)

7.3.2 工具栏中添加、删除按钮

编辑位图 修改按钮属性(ID,Width,Height,Prompt) 调整顺序、增加分割线、删除按钮
在该函数返回前 1、先调用PreCreateWindow(),对Create()/CreateEx()中的风格参 数进行预处理设置 2、调用OnCreate() 进行实际的窗口创建


CREATESTRUCT WNDCLASS
修改窗口外观

MainFrame类中修改

1、 MainFrame::PreCreateWindows() 2、 MainFrame::OnCreate()
7.VC++2010 MFC应用程 序 界面与美化
界面美化

窗口风格 窗口图标与背景 工具栏 状态栏 鼠标、光标 其他
7.1窗口风格美化

借助ActiveSkin(外部ActiveX控件,收费) 修改窗口外观

MFC窗口:MainFrame窗口、视图窗口 窗口创建过程: CWnd::Create()/CWnd::Create()

7.2窗口图标与背景修改

7.2.1 窗口图标

(例7-4 ChangeIcon) 步骤

1、新建MFC单文档应用 2、导入5个图标 3、框架类中添加成员变量m_hIcon[5] 4、OnCreate()中加载图标并设置Timer 5、添加定时器响应函数OnTimer()

补:给WM_TIMER添加响应函数OnTimer()(P360有问题)
7.6创建启动界面

Vc6可用,vs2010不可用

安装Splash screen 组件 插入位图(修改ID)
7.7创建特效窗口启动应用程序

利用对话框显示启动画面


1、新建单文档工程 2、导入位图,默认ID 3、新建对话框,删掉2个按钮,增加Picture控件, 设置为上一步中的位图ID 4、修改对话框效果 5、 CMainFrame::OnCreate()中最开始显示对话 框,并延时后销毁

视图类中修改

1、 ChangeFrm::PreCreateWindows() 2、 ChangeFrm ::OnCreate()
修改窗口外观
MainFrame类中修改 (例7-3 ChangeFrm)


1、 MainFrame::PreCreateWindows()


直接修改CREATESTRUCT结构 WNDCLASS SetWindowLong() SetClassLong()
7.4状态栏编程与美化

7.4.1 创建状态栏

1、CMainFrame头文件中申明CStatusBar对象 2、 CMainFrame::OnCreate()中创建状态栏

7.4.2 状态栏中插入进度条




1、CMainFrame头文件中申明CProgressCtrl对 象m_Pro 2、在资源面板中加入字符串资源,ID为IDS_PRO, 并在 CMainFrame中添加状态指示器IDS_PRO 3、CMainFrame加入WM_PAINT相应函数 OnPaint(),在其中创建状态栏 4、OnTimer()中 m_Pro.StepIt();
7.5鼠标、光标编程

7.5.1 鼠标光标编程

1、手工编辑Cursor 2、定义Cursor变量 3、加载Cursor 4、控制Cursor行为:OnCursor()

7.5.2 鼠标的消息处理机制

7.5.3 示例
vc下动态改变鼠标光标
SetCursor(AfxGetApp()>LoadStandardCursor(IDC_CROSS)); 或是: HCURSOR hc; hc=LoadCursor(NULL,IDC_CROSS); SetCursor(hc);

系统标准光标

IDC_APPSTARTING 带小沙漏的标准箭头 IDC_ARROW 标准箭头 IDC_CROSS 十字光标 IDC_HAND 手型 IDC_HELP 带问号的箭头 IDC_NO 禁止符号 IDC_SIZEALL 十字箭头 IDC_SIZENESW 指向东北和西南的双向箭头 IDC_SIZENS 指向南和北的双向箭头 IDC_SIZENWSE 指向西北和东南的双向箭头 IDC_SIZEWE 指向东西的双向箭头 IDC_UPARROW 上箭头 IDC_WAIT 沙漏
相关主题