版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 非洲概述課件教學(xué)課件
- 青竹湖湘一外國語學(xué)校九年級上學(xué)期語文第一次月考試卷
- 創(chuàng)意妝課件教學(xué)課件
- 三年級數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 考編面試協(xié)議書(2篇)
- 《數(shù)學(xué)物理方法》第7章測試題
- 南京航空航天大學(xué)《彈性力學(xué)基礎(chǔ)》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《現(xiàn)代企業(yè)管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《設(shè)計(jì)史》2021-2022學(xué)年第一學(xué)期期末試卷
- 交通配套設(shè)施(標(biāo)線、標(biāo)志、交通信號燈)工程施工組織設(shè)計(jì)
- 信息系統(tǒng)密碼應(yīng)用建設(shè)方案
- 2024中國郵政集團(tuán)公司貴州省分公司社會招聘191人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 郵政儲匯業(yè)務(wù)員(高級)職業(yè)技能鑒定考試題及答案
- 建筑架子工(普通腳手架)??荚囶}及答案
- 2024~2025學(xué)年七年級上冊數(shù)學(xué)第五章 一元一次方程章節(jié)測試(含簡單答案)
- 2024年銀行外匯業(yè)務(wù)知識理論考試題庫及答案(含各題型)
- 藥品不良反應(yīng)與藥物警戒智慧樹知到答案2024年山東藥品食品職業(yè)學(xué)院
- 2024年全國職業(yè)院校技能大賽高職組(建筑裝飾數(shù)字化施工賽項(xiàng))備賽試題庫(含答案)
- 2-1、職業(yè)生涯規(guī)劃概述
- 2024年歷年考研英語真題與答案
- 2024年入團(tuán)考試團(tuán)??荚囶}庫(含答案)
評論
0/150
提交評論