窗體分割模塊詳細(xì)設(shè)計(jì)_第1頁
窗體分割模塊詳細(xì)設(shè)計(jì)_第2頁
窗體分割模塊詳細(xì)設(shè)計(jì)_第3頁
窗體分割模塊詳細(xì)設(shè)計(jì)_第4頁
窗體分割模塊詳細(xì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

I頁目名稱:NeusoftMediaPlayer

項(xiàng)目編號:NEU-TRAINING-2022001

文檔編號:D09-PMT08004

窗體分割模塊具體設(shè)計(jì)

總頁數(shù)16正文14附錄生效日期

編制李曉奇批準(zhǔn)

目錄

1文檔概述1

1.1文檔目的和范圍1

1.2術(shù)語/縮略語1

1.3參考文檔1

2窗體分割模塊功能描述I

2.1數(shù)據(jù)結(jié)構(gòu)定義1

數(shù)據(jù)類型定義1

SPC_NMHDR1

全局變量定義2

常量定義2

2.2CSplitterControl類功能實(shí)現(xiàn)2

類數(shù)據(jù)成員2

類成員函數(shù)3

CreateSplitter3

SetRange4

ChangeWidth5

ChangeHeight5

MoveWindowTo6

DrawLine7

1文檔概述

1.1文檔目的和范圍

本文檔描述了使用分隔條對主窗體進(jìn)行分割的相關(guān)內(nèi)容,為日后開發(fā)供應(yīng)相關(guān)參考和依據(jù)。

1.2術(shù)語/縮略語

序號術(shù)語/縮略語說明

1GUI(GraphicalUserInterface)圖形用戶界面

2DC(DeviceContext)圖形設(shè)施環(huán)境

1.3參考文檔

序號文檔名作者時(shí)間版本

1NeusoftMediaPlayer項(xiàng)目要求書胡本仁2009-02-04Ver1.2

2概要設(shè)計(jì).其次組2009-02-24Ver1.()

2窗體分割模塊功能描述

窗體分割模塊位于GUI層,其功能是通過用戶對分隔條的水平或豎直方向的拖拽動(dòng)態(tài)轉(zhuǎn)變主窗體各個(gè)

控件尺寸的大小。

2.1數(shù)據(jù)結(jié)構(gòu)定義

2.1.1數(shù)據(jù)類型定義

2.1.1.1SPC_NMHDR

typedefstructSPC_NMHDR

(

NMHDRhdr;

intdelta;

}SPC_NMHDR;

SPC_NMHDR結(jié)構(gòu)體由通知消息結(jié)構(gòu)體和偏移量兩部分組成,通知消息結(jié)構(gòu)。變量hdr用于紀(jì)錄

消息內(nèi)的具體信息,偏移量:delta紀(jì)錄水平或豎直方向的拖拽距離

2.1.2全局變量定義

staticHCURSORSplitterControl_hCursorl=NULL;〃分隔條水平拖拽可選狀態(tài)圖標(biāo)指針

staticHCURSORSplitterControl_hCursor2=NULL;〃分隔條垂直拖拽可選狀態(tài)圖標(biāo)指針

2.1.3常量定義

#defineCW_LEFTALIGN1〃左對齊

#defineCW_RIGHTALIGN2〃右對齊

#defineCW_TOPALIGN3〃頂端對齊

#defineCW_B0TT0MALIGN4〃底對齊

#defineSPS_VERTICAL1〃分隔條垂直拖拽

#defineSPS_HORIZONTAL2〃分隔條水平拖拽

2.2CSplitterControl類功能實(shí)現(xiàn)

用戶拖拽分隔條通過對鼠標(biāo)大事的捕獲推斷出拖拽方向和偏移量并表示出拖拽效果,然后逐個(gè)設(shè)置需

要進(jìn)行轉(zhuǎn)變的控件的寬度或高度,最終更新窗口,從而實(shí)現(xiàn)了分割窗口的效果。

2.2.1類數(shù)據(jù)成員

BOOLm_bIsPressed;〃推斷是否選中了分隔條標(biāo)志

intm_nType;〃分隔條退拽類型

intm_nX;〃分隔條中心點(diǎn)水平坐標(biāo)

intm_nY;〃分隔條中心點(diǎn)垂直坐標(biāo)

intm_nMin;〃分隔條拖拽最小值

intm_nMax;〃分隔條拖拽最大值

intm_nSavePos;〃存儲分隔條拖拽過程中的前一水平或垂直坐標(biāo)

2.2.2類成員函數(shù)

voidCreateSplitter(DWORDdwStyle,constCRect&rect,CWnd*pParent,UINTnID);

voidSetRange(intnMin,intnMax);

staticvoidChangeWidth(CWnd*pWnd,intdx,DWORDdwFlag=CW_LEFTALIGN);

staticvoidChangeHeight(CWnd*pWnd,intdy,DWORDdwFlag=CW_TOPALIGN);

voidMoveWindowTo(CPointpt);

virtualvoidDrawLine(CDC*pDC,intx,inty);

2.2.2.1CreateSplitter

【函數(shù)式樣】表2"

函數(shù)名CreateSplitter函數(shù)作用范圍public

類名CSplitterControl

功能概要?jiǎng)?chuàng)建分隔條,并對分隔條屬性進(jìn)行設(shè)置

記述形式BOOLCSplitterControl::CreateSplitter(DWORDdwStyle,constCRect&rectfCWnd

*pParent,UINTnID)

參數(shù)

類型變量名I/O說明

DWORDdwStyleI分隔條類型屬性

constCRectrectI控件屏幕坐標(biāo)值

CWndpParentI窗口指針

UINTnIDI控件ID

返回值類型BOOL說明

值TRUE分隔條創(chuàng)建勝利

FALSE分隔條創(chuàng)建失敗

具體說明

1.獵取分隔條屬性信息

2.通過推斷分隔條拖拽方向設(shè)置分隔條的寬度和高度

3.調(diào)用父類創(chuàng)建方法

4.推斷拖拽光標(biāo)指針是否為空假如為空則標(biāo)載入水平或垂直標(biāo)準(zhǔn)光標(biāo)

使用留意事

CreateSplitter函數(shù)處理規(guī)律:(見圖2?1)

圖2-1CreateSplitter流程圖

2.2.2.2SetRange

【函數(shù)式樣】表2-2

函數(shù)名SetRange函數(shù)作用范圍public

類名CSplitterControl

功能概要設(shè)置分隔條拖拽范圍的最小值和最大值

記述形式BOOLCSplitterControl::SetRange(intnMin,intnMax)

參數(shù)

類型變量名I/O說明

intnMinI拖動(dòng)范圍最小值

inttnMaxI拖動(dòng)范圍最大值

返回值類型BOOL說明

值TRUE拖動(dòng)范圍設(shè)置完畢

具體說明

1.對成員變量中的范圍最小值和最大值進(jìn)行賦值

使用留意事

2.2.2.3ChangeWidth

【函數(shù)式樣】表2-3

函數(shù)名ChangeWidth函數(shù)作用范圍public

類名CSplitterControl

功能概要轉(zhuǎn)變控件寬度

記述形式BOOLCSplitterControl::ChangeWidth(CWnd*pWnd,intnOffset,DWORDdwFlag)

參數(shù)

類型變量名1/0說明

CWndpWndI控件指針

intnOffsetI需要轉(zhuǎn)變的寬度或高度

DWORDdwFlagI控件的對齊方式

返回值類型BOOL說明

值TRUE寬度設(shè)置結(jié)束

具體說明

1.獵取父窗口指針

2.推斷父窗口是否存在且類型為Window類型

3.獵取控件的屏幕坐標(biāo)并轉(zhuǎn)換為窗口的相對坐標(biāo)

4.推斷控件的對齊方式

5.轉(zhuǎn)變控件的寬度

6.調(diào)用控件的MoveWindow方法轉(zhuǎn)變控件寬度

使用留意事

ChangeWidth函數(shù)處理規(guī)律:(見圖2-3)

圖2-3ChangeWidth流程圖

2.2.2.4ChangeHeight

【函數(shù)式樣】表2-4

函數(shù)名ChangeHeight函數(shù)作用范圍public

類名CSplitterControl

功能概要轉(zhuǎn)變控件高度

記述形式BOOLCSplitterControl::ChangeHeight(CWnd*pWnd,intnOffset,DWORDdwFlag)

參數(shù)

類型變量名I/O說明

CWndpWndI控件指針

intnOffsetI需要轉(zhuǎn)變的寬度或高度

DWORDdwFlagI控件的對齊方式

返回值類型BOOL說明

值TRUE寬度設(shè)置結(jié)束

具體說明

1.獵取父窗口指針

2.推斷父窗口是否存在且類型為Window類型

3.獵取控件的屏幕坐標(biāo)并轉(zhuǎn)換為窗口的相對坐標(biāo)

4.推斷控件的對齊方式

5.轉(zhuǎn)變控件的高度

6.調(diào)用控件的MoveWindow方法轉(zhuǎn)變控件高度

使用留意事

ChangeHeight函數(shù)處理規(guī)律:(見圖2-4)

圖2-4ChangeHeight流程圖

2.2.2.5MoveWindowTo

【函數(shù)式樣】表2-5

函數(shù)名MoveWindowTo函數(shù)作用范圍protected

類名CSplitterControl

功能概要轉(zhuǎn)變控件寬度

記述形式BOOLCSplitterControl::MoveWindowTo(CPointpt)

參數(shù)

類型變量名1/0說明

CPointptI當(dāng)前光標(biāo)坐標(biāo)

返回值類型BOOL說明

值TRUE分隔條移動(dòng)結(jié)束

FALSE不存在父窗口

具體說明

1.獵取父窗口指針

2.推斷父窗口是否存在且類型為Window類型

3.獵取控件的屏幕坐標(biāo)并轉(zhuǎn)換為窗口的相對坐標(biāo)

4.推斷分隔條的拖動(dòng)方向

5.轉(zhuǎn)變分隔條的坐標(biāo)

6.調(diào)用控件的MoveWindow方法轉(zhuǎn)變分隔條的位置

使用留意事

MoveWindowTo函數(shù)處理規(guī)律:(見圖2-5)

圖2?5MoveWindowTo流程圖

2.2.2.6DrawLine

【函數(shù)式樣】表2?6

函數(shù)名Dr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論