窗体分割模块详细设计

上传人:cl****1 文档编号:497828053 上传时间:2023-01-10 格式:DOCX 页数:17 大小:107.79KB
返回 下载 相关 举报
窗体分割模块详细设计_第1页
第1页 / 共17页
窗体分割模块详细设计_第2页
第2页 / 共17页
窗体分割模块详细设计_第3页
第3页 / 共17页
窗体分割模块详细设计_第4页
第4页 / 共17页
窗体分割模块详细设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《窗体分割模块详细设计》由会员分享,可在线阅读,更多相关《窗体分割模块详细设计(17页珍藏版)》请在金锄头文库上搜索。

1、项目名称:Neusoft Media Player项目编号: NEU-TRAINING-2008001文档编号: D09-PMT08004窗体分割模块详细设计总页数16正文14附录生效日期编制李晓奇批准目录1 文档概述 11.1文档目的和范围11.2术语/缩略语11.3 参考文档 12 窗体分割模块功能描述 22.1数据结构定义 22.1.1数据类型定义22.1.1.1 SPC_NMHDR22.1.2全局变量定义 22.1.3常量定义 22.2CSplitterControl 类功能实现 32.2.1类数据成员32.2.2类成员函数32.2.2.1 CreateSplitter42.2.2.2

2、 SetRange62.2.2.3 ChangeWidth72.2.2.4 ChangeHeight92.2.2.5 MoveWindowTo112.2.2.6 DrawLine131 文档概述1.1 文档目的和范围本文档描述了使用分隔条对主窗体进行分割的相关内容,为日后开发提供相关参考和依据。1.2 术语/缩略语序号术语/缩略语说明1GUI(Graphical User Interface)图形用户界面2DC(Device Context)图形设备环境1.3 参考文档序号文档名作者时间版本1Neusoft Media Player 项目要求书胡本仁2009-02-04Verl.22概要设计第

3、二组2009-02-24Verl.02窗体分割模块功能描述窗体分割模块位于GUI层,其功能是通过用户对分隔条的水平或竖直方向的拖拽动态改变主窗体各个 控件尺寸的大小。2.1 数据结构定义2.1.1 数据类型定义2.1.1.1 SPC_NMHDRtypedef struct SPC_NMHDRNMHDR hdr; int delta; SPC_NMHDR;SPC_NMHDR结构体由通知消息结构体和偏移量两部分组成,通知消息结构。变量hdr用于记录 消息内的具体信息,偏移量:delta记录水平或竖直方向的拖拽距离2.1.2 全局变量定义static HCURSOR SplitterControl_

4、hCursor1 = NULL;/分隔条水平拖拽可选状态图标指针static HCURSOR SplitterControl_hCursor2 = NULL;/分隔条垂直拖拽可选状态图标指针2.1.3 常量定义#define CW_LEFTALIGN 1/左对齐#define CW_RIGHTALIGN 2/右对齐#define CW_TOPALIGN3/顶端对齐#define CW_BOTTOMALIGN 4/底对齐#define SPS_VERTICAL1/分隔条垂直拖拽#define SPS_HORIZONTAL 2/分隔条水平拖拽2.2 CSplitterControl 类功能实现用户

5、拖拽分隔条通过对鼠标事件的捕获判断出拖拽方向和偏移量并表示出拖拽效果,然后逐个设置需 要进行改变的控件的宽度或高度,最后更新窗口,从而实现了分割窗口的效果。2.2.1 类数据成员BOOLm_bIsPressed;/判断是否选中了分隔条标志intm_nType;/分隔条退拽类型intm_nX;/分隔条中心点水平坐标intm_nY;/分隔条中心点垂直坐标intm_nMin;/分隔条拖拽最小值intm_nMax;/分隔条拖拽最大值intm_nSavePos;/存储分隔条拖拽过程中的前一水平或垂直坐标2.2.2 类成员函数void CreateSplitter(DWORD dwStyle, const

6、 CRect& rect, CWnd* pParent, UINT nID); void SetRange(int nMin, int nMax);static void ChangeWidth(CWnd* pWnd, int dx, DWORD dwFlag = CW_LEFTALIGN); static void ChangeHeight(CWnd* pWnd, int dy, DWORD dwFlag = CW_TOPALIGN); void MoveWindowTo(CPoint pt);virtual void DrawLine(CDC* pDC, int x, int y);2.2

7、.2.1 CreateSplitter函数式样】表 2-1函数名CreateSplitter函数作用范围public类名CSplitterControl功能概要创建分隔条,并对分隔条属性进行设置记述形式BOOL CSplitterControl:CreateSplitter(DWORD dwStyle, const CRect &rect, CWnd*pParent, UINT nID)参数类型变量名I/O说明DWORDdwStyleI分隔条类型属性const CRectrectI控件屏幕坐标值CWndpParentI窗口指针UINTnIDI控件ID返回值类型BOOL说明值TRUE分隔条创建成

8、功FALSE分隔条创建失败详细说明1 获取分隔条属性信息2通过判断分隔条拖拽方向设置分隔条的宽度和高度4.3 调用父类创建方法 判断拖拽光标指针是否为空如果为空则标载入水平或垂直标准光标使用注意事CreateSplitter 函数处理逻辑:见图 2-1)否光标指针为空水平拖拽否 否开始结束调用父类Creat方法设置分隔条高度设置分隔条宽度载入水平和垂直拖拽标 准光标获取分隔条属性信息图 2-1 CreateSplitter 流程图2.2.2.2 SetRange【函数式样】表 2-2函数名SetRange函数作用范围public类名CSplitterControl功能概要设置分隔条拖拽范围的最

9、小值和最大值记述形式BOOL CSplitterControl:SetRange(int nMin, int nMax)参数类型变量名I/O说明intnMinI拖动范围最小值int tnMaxI拖动范围最大值返回值类型BOOL说明值TRUE拖动范围设置完毕详细说明1 对成员变量中的范围最小值和最大值进行赋值使用注意事2223 ChangeWidth函数式样】表 2-3函数名ChangeWidth函数作用范围public类名CSplitterControl功能概要改变控件宽度记述形式BOOL CSplitterControl:ChangeWidth(CWnd *pWnd, int nOffset

10、, DWORD dwFlag)参数类型变量名I/O说明CWndpWndI控件指针intnOffsetI需要改变的宽度或咼度DWORDdwFlagI控件的对齐方式返回值类型BOOL说明值TRUE宽度设置结束详细说明i 获取父窗口指针2判断父窗口是否存在且类型为Window类型3获取控件的屏幕坐标并转换为窗口的相对坐标4 判断控件的对齐方式5改变控件的宽度6.调用控件的MoveWindow方法改变控件宽度使用注意事ChangeWidth 函数处理逻辑:(见图 2-3):开始:1T获取父窗口指针,父窗口指;Jj十不为空且-Window-获取控件的为换为窗口白早幕坐标并转 勺相对坐标1控件是否为左对齐

11、一否增加宽度减小宽度.改变控件的宽度结束图 2-3 ChangeWidth 流程图2.2.2.4 ChangeHeight函数式样】表 2-4函数名ChangeHeight函数作用范围public类名CSplitterControl功能概要改变控件高度记述形式BOOL CSplitterControl:ChangeHeight(CWnd *pWnd, int nOffset, DWORD dwFlag)参数类型变量名I/O说明CWndpWndI控件指针intnOffsetI需要改变的宽度或咼度DWORDdwFlagI控件的对齐方式返回值类型BOOL说明值TRUE宽度设置结束详细说明1 获取父窗

12、口指针2判断父窗口是否存在且类型为Window类型3获取控件的屏幕坐标并转换为窗口的相对坐标4 判断控件的对齐方式5 改变控件的高度6.调用控件的MoveWindow方法改变控件高度使用注意事ChangeHeight 函数处理逻辑:(见图 2-4)图 2-4 ChangeHeight 流程图2.2.2.5 MoveWindowTo函数式样】表 2-5函数名MoveWindowTo函数作用范围protected类名CSplitterControl功能概要改变控件宽度记述形式BOOL CSplitterControl:MoveWindowTo(CPoint pt)参数类型变量名I/O说明CPoin

13、tptI当前光标坐标返回值类型BOOL说明值TRUE分隔条移动结束FALSE不存在父窗口详细说明1 获取父窗口指针2判断父窗口是否存在且类型为Window类型3获取控件的屏幕坐标并转换为窗口的相对坐标4 判断分隔条的拖动方向5改变分隔条的坐标6调用控件的MoveWindow方法改变分隔条的位置使用注意事MoveWindowTo 函数处理逻辑:(见图 2-5)图 2-5 MoveWindowTo 流程图2.2.2.6 DrawLine函数式样】表 2-6函数名DrawLine函数作用范围protected类名CSplitterControl功能概要改变控件宽度记述形式BOOL CSplitterControl:DrawLine(CDC* pD

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号