7.9 开发知识点总结
到本节为止,该系统的开发已全部介绍完毕,在开发过程中用到了许多开发技巧及重要知识点,下面将对这些技巧及知识点进行简单介绍。
状态栏中信息的显示:很多程序都会在状态栏中显示信息,如用户登录、时间等,其实这是很容易实现的。在主框架类中有这样的一个结构数组static UINT indicators[],可以按照自己想要在工具栏中的布局来添加或者删除一些字符串。之后调用m_wndStatusBar.SetPaneText(n, str, TRUE)函数就可以实现状态栏信息的显示,其中n为状态栏中窗格的索引,str为要显示的字符串。
分割视图的实现:通过分割视图可以把界面按自己的需要合理布局。各个功能模块之间既可以独立处理消息又能互相传递数据。本系统实现静态分割,主要是通过添加CMainFrame::OnCreateClient()消息函数实现的。
动态的应用程序图标:先把需要不断变化的几幅图标资源添加进来。在主框架的头文件中定义一个图标句柄的数组HICON m_hIcons[3]来保存图标的句柄。再在OnCreate()函数中加载图标。用函数LoadIcon()完成图标的加载。其中,参数MAKEINTRESOURCE是一个宏,其参数为资源的ID。最后,在OnCreate()函数中设置一个定时器SetTimer(),通过类向导添加一个定时器,在OnTimer中通过SetClassLong()来改变应用程序的图标。这样,不断变化的图标就完成了。
MapObjects控件的使用:MapObjects同其他的ActiveX控件使用基本相同,先安装MapObjects控件。安装成功后MapObjects就注册成功了。选择【Project】|【Add To Project】|【Components and Controls...】命令,打开【Components and Controls Gallery】对话框。从其【Registered ActiveX Controls】文件夹下的已登记控件列表中选择【MapObjects 2.3 Map Control】选项,然后单击【Insert】按钮,系统将生成该控件及其自动化对象的一系列包裹类(Wrapper Class)。这样在控制条中会增加一个地图控件图标,把该图标插入到所应用的窗口中就可以了。可以在相应的头文件中创建该类型的对象,利用它就可以操作地图了。