版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
I頁目名稱:NeusoftMediaPlayer
項目編號:NEU-TRAINING-2022001
文檔編號:D09-PMT08004
窗體分割模塊具體設(shè)計
總頁數(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類功能實現(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參考文檔
序號文檔名作者時間版本
1NeusoftMediaPlayer項目要求書胡本仁2009-02-04Ver1.2
2概要設(shè)計.其次組2009-02-24Ver1.()
2窗體分割模塊功能描述
窗體分割模塊位于GUI層,其功能是通過用戶對分隔條的水平或豎直方向的拖拽動態(tài)轉(zhuǎn)變主窗體各個
控件尺寸的大小。
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類功能實現(xiàn)
用戶拖拽分隔條通過對鼠標(biāo)大事的捕獲推斷出拖拽方向和偏移量并表示出拖拽效果,然后逐個設(shè)置需
要進(jìn)行轉(zhuǎn)變的控件的寬度或高度,最終更新窗口,從而實現(xiàn)了分割窗口的效果。
2.2.1類數(shù)據(jù)成員
BOOLm_bIsPressed;〃推斷是否選中了分隔條標(biāo)志
intm_nType;〃分隔條退拽類型
intm_nX;〃分隔條中心點水平坐標(biāo)
intm_nY;〃分隔條中心點垂直坐標(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
功能概要創(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拖動范圍最小值
inttnMaxI拖動范圍最大值
返回值類型BOOL說明
值TRUE拖動范圍設(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分隔條移動結(jié)束
FALSE不存在父窗口
具體說明
1.獵取父窗口指針
2.推斷父窗口是否存在且類型為Window類型
3.獵取控件的屏幕坐標(biāo)并轉(zhuǎn)換為窗口的相對坐標(biāo)
4.推斷分隔條的拖動方向
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南楚雄州南華興福村鎮(zhèn)銀行工作人員招聘2人備考考試試題附答案解析
- 2026甘肅省酒泉市體育中心招聘3人備考考試題庫附答案解析
- 2026上半年北大荒農(nóng)墾集團有限公司事業(yè)單位招聘112人備考考試題庫附答案解析
- 2026年中國科學(xué)院合肥腫瘤醫(yī)院血液透析中心醫(yī)護人員招聘7名參考考試題庫附答案解析
- 生產(chǎn)企業(yè)巡查制度范本
- 煙葉生產(chǎn)信息化管理制度
- 生產(chǎn)領(lǐng)用半成品規(guī)章制度
- 2026天津市和平區(qū)選聘區(qū)管國有企業(yè)管理人員6人備考考試題庫附答案解析
- 安全生產(chǎn)日報管理制度
- 安會生產(chǎn)會辦制度
- 08J02 彩色壓型鋼板外墻保溫隔熱建筑構(gòu)造
- 光伏發(fā)電安全管理制度匯編
- 國際發(fā)展合作署面試輔導(dǎo)
- 電力設(shè)備檢測方案
- 2020中國藥典無水乙醇輔料標(biāo)準(zhǔn)解讀
- 工程造價英語核心詞匯手冊
- 【語文】南昌市小學(xué)四年級上冊期末試題(含答案)
- 5噸鹵制品污水處理方案
- 橫向課題申報書示范
- 《安全經(jīng)濟學(xué)》課件(共十一章)
- 礦熱爐日常安全培訓(xùn)課件
評論
0/150
提交評論