2.上机作业
1)使用CWnd::CreateEx创建自定义主窗口及控件,如图11-30所示。

图11-30 创建自定义主窗口及控件
①使用CWnd::CreateEx创建一个带框架的自定义主窗口。
②使用CWnd::CreateEx在客户区创建控件,包括一些带凸起边缘的控件。
③手动建立三个按钮的消息反射函数,以及列表控件的LVN_ITEMCHANGED消息反射函数。
④在初始化(WM_CREATE)消息回调函数中创建提示窗口,当鼠标停留在控件上时弹出提示。
⑤当主窗口尺寸变化时(WM_SIZE),移动列表控件随主窗口的大小伸缩。
2)使用CWnd::CreateEx函数创建一个全屏无框架主窗口,并且在客户区绘背景图。每次单击画面,添加一只按随机运动方向飞行的蝴蝶。
3)修改第四节中的CTestTab类,增加以下接口函数。

4)仿照Visual C++6.0开发一个梯形标签控件类(CTrapeTab),如图11-31所示。

图11-31 梯形标签控件类
①由CWnd类派生,所有接口函数参照第4节的CTestTab类。
②支持插入标签项、删除标签项以及设置标签项等接口函数。(https://www.daowen.com)
③注册和创建过程参照CTestTab类,页面切换时发出消息反射通知父窗口。
5)模仿一些杀毒软件的界面,开发一个三态的位图标签控件类(CBitmapTab),如图11-32所示。

图11-32 界面效果
①由CWnd类派生,所有接口函数参照第4节的CTestTab类。
②大部分功能相似,主要新增SetImageList和GetImageList函数设置和获取图像列表。
③在插入标签项时不需要指定文字,只要指定三态图片在图像列表中的索引即可。
④私有成员变量和函数自行设计和定义,要求公开接口函数如下。

6)开发一个滚动文字(也叫“走马灯”)的CLantCtrl类,如图11-33所示。

图11-33 滚动文字效果
①由CWnd类派生,所有接口函数参照第4节的CTestTab类。
②支持插入文字项、删除文字项以及设置文字项等接口函数。
③注册和创建过程参照CTestTab类,单击某个文字项时发出消息反射通知父窗口。