




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、工 具 條 的 停 靠 控 制 - 在VC5.0 中 開(kāi) 發(fā) 大 型 應(yīng) 用 程 序 時(shí), 工 具 條 通 常 是 程 序 中 必 不 可 少 的 功 能 因 素, 在 整 個(gè) 窗 口 的 停 靠 位 置 尤 其 關(guān) 鍵, 它 直 接 影 響 到 程 序 界 面 的 外 觀 形 象。 本 文 介 紹 各 類(lèi) 工 具 條 停 靠 位 置 的 控 制 技 巧, 供 參 閱。 - 標(biāo) 準(zhǔn) 工 具 條 的 停 靠 控 制 - VC5.0 應(yīng) 用 程 序 向 導(dǎo) 生 成 的 框 架 代 碼 中, 都 具 有 普 通 工 具 條 的 控 制 方 法。 正 常 情 況 下 工 具 條 類(lèi)CToolBar 是
2、 控 制 條 類(lèi)CControlBar 的 派 生 類(lèi), 其 顯 示 的 初 始 停 靠 位 置 是 通 過(guò) 調(diào) 用 繼 承 的 函 數(shù)CControlBar:EnableDocking(DWORD dwStyle) 來(lái) 確 定 的, 其 參 數(shù)dwStyle 用 來(lái) 指 定 停 靠 的 具 體 位 置, 與 本 文 有 關(guān) 的 格 式 如 下( 其 余 請(qǐng) 參 閱VC5.0 的 聯(lián) 機(jī) 文 檔): - CBRS ALIGN TOP 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 頂 部; - CBRS ALIGN BOTTOM 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 底 部; - CBRS
3、ALIGN LEFT 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 左 邊; - CBRS ALIGN RIGHT 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 右 邊; - CBRS ALIGN ANY 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 任 何 位 置。 - 在 利 用 應(yīng) 用 程 序 向 導(dǎo)AppWizard 生 成 的 應(yīng) 用 程 序 中, 其 控 制 代 碼 默 認(rèn) 的 停 靠 位 置 為CBRS ALIGN ANY, 即 允 許 停 靠 在 框 架 窗 口 客 戶 區(qū) 域 的 任 何 邊 上。 工 具 條 在 正 常 顯 示 時(shí) 停 靠 在 窗 口 客 戶 區(qū) 域 的 頂 部,
4、 控 制 指 令 為EnableDocking(CBRS_ALIGN_ANY) 或m_wndToolBar. EnableDocking(CBRS_ALIGN_ANY), 注 意 在 實(shí) 際 程 序 控 制 時(shí) 前 者 必 須 處 于 所 有 其 他 控 制 代 碼 的 前 面, 否 則 浮 動(dòng) 工 具 條 或 特 殊 工 具 條 等 部 分 代 碼 可 能 無(wú) 法 奏 效。 具 體 控 制 方 法 請(qǐng) 參 考 利 用 應(yīng) 用 程 序 向 導(dǎo) 生 成 的 任 何 一 個(gè) 程 序 實(shí) 例 框 架 代 碼 部 分 中 建 立 的 函 數(shù)ONCREATE()。 - 應(yīng) 用 程 序 的 單 文 檔 和
5、 多 文 檔 的 窗 口 框 架 類(lèi) 均 由CFrameWnd:EnableDocking(DWORD dwDockS tyle) 來(lái) 實(shí) 現(xiàn) 的, 其 可 選 的 參 數(shù) 除 上 述 五 種 之 外, 還 增 加 了CBRS FLOAT MULTI 參 數(shù), 該 參 數(shù) 主 要 是 為 設(shè) 計(jì) 浮 動(dòng) 工 具 條 而 增 加 的, 用 來(lái) 確 定 一 個(gè) 框 架 窗 口 中 允 許 存 在 多 個(gè) 浮 動(dòng) 工 具 條。 同 樣 利 用 應(yīng) 用 程 序 向 導(dǎo)AppWizard 生 成 的 應(yīng) 用 程 序, 其 默 認(rèn) 的 停 靠 位 置 也 是CBRS ALIGN A NY, 即 允 許 工
6、 具 條 停 靠 在 框 架 窗 口 的 任 何 邊 上, 其 默 認(rèn) 的 初 始 位 置 為 框 架 窗 口 的 頂 部, 即En ableDocking(CBRS_ALIGN_ANY) 或m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY)。 - 浮 動(dòng) 工 具 條 的 停 靠 控 制 - 當(dāng) 一 個(gè) 框 架 窗 口 中 存 在 多 個(gè) 標(biāo) 準(zhǔn) 或 浮 動(dòng) 工 具 條 時(shí), 則 需 要 利 用 函 數(shù)void DockControlBar(CC ontrolBar pBar,UINT nDockBarID=0,LPCRECT lpRect=NULL) 來(lái) 確
7、 定 要 控 制 停 靠 位 置 的 工 具 條, 它 也 是CFrameWnd 類(lèi) 的 成 員 函 數(shù)。 其 中 參 數(shù)pBar 用 來(lái) 指 向 被 控 制 停 靠 位 置 的 工 具 條 對(duì) 象 指 針, 參 數(shù)nDockBarID 用 來(lái) 確 定 工 具 條 停 靠 在 框 架 窗 口 的 哪 條 邊 上, 其 控 制 的 具 體 取 值 為: - AFX IDW DOCKBAR TOP 停 靠 在 框 架 窗 口 的 頂 部; - AFX IDW DOCKBAR BOTTOM 停 靠 在 框 架 窗 口 的 底 部; - AFX IDW DOCKBAR LEFT 停 靠 在 框 架 窗
8、 口 的 左 邊; - AFX IDW DOCKBAR RIGHT 停 靠 在 框 架 窗 口 的 右 邊。 - 當(dāng) 參 數(shù)nDockBarID 的 取 值 為0 時(shí), 則 工 具 條 可 停 靠 在 框 架 窗 口 中 的 任 何 一 個(gè) 可 停 靠 的 邊 上, 其 默 認(rèn) 的 初 始 位 置 為 窗 口 頂 部。 - 并 列 工 具 條 的 停 靠 控 制 - 很 多 大 型 應(yīng) 用 程 序 中 都 存 在 將 多 個(gè) 工 具 條 同 時(shí) 并 列 停 靠 在 某 窗 口 的 某 一 條 邊 上 的 情 況。 對(duì) 這 種 停 靠 方 法, 可 利 用 上 述 工 具 條 控 制 函 數(shù)Do
9、ckControlBar 的lpRect 參 數(shù), 通 過(guò) 控 制 工 具 條 的 停 靠 矩 形 區(qū) 域 的 方 法 來(lái) 實(shí) 現(xiàn)。 實(shí) 現(xiàn) 的 函 數(shù) 如 下: - 1. 在 實(shí) 現(xiàn) 文 件MainFrm.h 中 增 加 如 下 成 員 函 數(shù) 定 義: - void DockControlBarLeftOf(CToolBar Bar,CToolBar LeftOf); - 2. 在 實(shí) 現(xiàn) 文 件MainFrm.cpp 中 增 加 如 下 成 員 函 數(shù): - void CMainFrame:DockControlBarLeftOf(CToolBar Bar,CTooIBar LeftOf
10、) - / 設(shè) 置 工 具 條 并 列 停 靠 在 同 一 條 邊 上 - CRect rect; / 矩 形 區(qū) 域 定 義 - DWORD dw; - UINT n=0; - RecalcLayout(); / 重 新 顯 示 - LeftOf >GetWindowRect( rect); - rect.Offset(1,0); / 設(shè) 置 偏 移 植 以 停 靠 在 同 一 邊 上 - dw=LeftOf >GetBarStyle(); - n=(dw CBRS_ALIGN_TOP)?AFX_IDW_DOCKBAR_TOP:n; - n=(dw CBRS_ALIGN_BOTT
11、OM n=0)?AFX_IDW_DOCKBAR_BOTTOM:n; - n=(dw CBRS_ALIGN_LEFT n=0)?AFX_IDW_DOCKBAR_LEFT:n; - n=(dw CBRS_ALIGN_RIGHT n=0)?AFX_IDW_DOCKBAR_RIGHT:n; - DockControlBar(Bar,n, rect); - - 在 這 個(gè) 函 數(shù) 中 應(yīng) 注 意 對(duì)RecalcLayout() 函 數(shù) 和OffestRect() 函 數(shù) 的 調(diào) 用, 前 者 用 來(lái) 重 新 顯 示 被 調(diào) 整 的 客 戶 區(qū) 和 工 具 條, 后 者 用 來(lái) 重 新 確 定 矩 形 區(qū)
12、 域, 這 相 當(dāng) 于 利 用 鼠 標(biāo) 將 第 二 個(gè) 工 具 條 窗 口 拖 動(dòng) 到 前 一 個(gè) 工 具 條 上 然 后 釋 放。 - 3. 修 改 應(yīng) 用 程 序 建 立 函 數(shù)OnCreate() 中 的 相 應(yīng)DockControlBar() 函 數(shù) 為DockControlBarOf() 函 數(shù), 并 正 確 設(shè) 置 工 具 條 對(duì) 象 的 指 針。 筆 者 在 實(shí) 現(xiàn) 程 序 中 的 控 制 代 碼 如 下: - EnableDocking(CBRS_ALIGN_ANY);/ 停 靠 位 置 必 須 在 最 前 面 - 工 具 條 建 立 函 數(shù) - m_wndToolBar.En
13、ableDocking(CBRS_ALIGN_ANY); - m_wndTestToolBar.EnableDocking(CBRS_ALIGN_ANY); - DockControlBar( m_wndToolBar,AFX_IDW_DOCKBAR_TOP); - 使 兩 個(gè) 工 具 條 并 列 停 靠 - DockControlBarLeftOf( m_wndTestToolBar, m_wndToolBar); - 工 具 條 的 頂 部 停 靠 控 制 - 1. 打 開(kāi) 菜 單 資 源 增 加 頂 部 位 置 控 制 菜 單 項(xiàng)IDD_DLGBARTOP; - 2. 在 實(shí) 現(xiàn) 文 件
14、MainFrm.h 中 增 加 成 員 控 制 變 量m_bDialogTop: - BOOL m_bDialogTop; - 并 在 構(gòu) 造 函 數(shù) 中 設(shè) 置 初 始 值; - 3. 利 用 類(lèi) 向 導(dǎo)ClassWizard 為 菜 單 項(xiàng) 設(shè) 置 響 應(yīng) 函 數(shù); - 4. 在 實(shí) 現(xiàn) 文 件MainFrm.cpp 中 通 過(guò) 充 分 利 用SetWindowPos() 成 員 完 善 消 息 映 射 功 能。 void CMainFrame:OnButtonDIgbartop() / 定 制 工 具 條 頂 部 位 置 控 制 函 數(shù)if (m_bDialogTop) m_wndDIgBar.SetWindowPos( m_wndStatusBar,0,0,0,0, SWP_NOSIZE|SWP_NOMOVE); / 頂 部 工 具 條 停 靠 在 窗 口 邊, 左 右 工 具 條 停 靠 其 下else m_wndDIgBar.SetWindowPos( wndTop,0,0,0,0, SWP_NOSIZE|SWP_NOMOVE);/ 停 靠 在 最 頂 部
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高考生物三年高考真題及模擬題分類(lèi)匯編專(zhuān)題12種群和群落含解析
- 再生障礙性貧血護(hù)理教學(xué)查房
- 家庭教育書(shū)分享
- 中醫(yī)艾灸護(hù)理程序圖解
- 國(guó)畫(huà)動(dòng)物美術(shù)課件
- 腫瘤科春季健康宣教內(nèi)容
- 幼兒園睿思維培訓(xùn)
- 綠化工程造價(jià)培訓(xùn)
- 酒障病人的護(hù)理
- 2025年音樂(lè)產(chǎn)業(yè)音樂(lè)版權(quán)運(yùn)營(yíng)與音樂(lè)科技創(chuàng)新融合發(fā)展的技術(shù)創(chuàng)新報(bào)告
- 2025泰山護(hù)理職業(yè)學(xué)院教師招聘考試試題
- 2025年重慶市中考?xì)v史真題(原卷版)
- 吉林省國(guó)資委監(jiān)管企業(yè)招聘筆試真題2024
- 項(xiàng)目管理中的資源優(yōu)化配置
- 2025年重慶市中考道德與法治試卷真題(含標(biāo)準(zhǔn)答案)
- 2025年北京昌平區(qū)東小口鎮(zhèn)城市協(xié)管員招聘題庫(kù)帶答案分析
- 10kV供配電系統(tǒng)電氣設(shè)備改造 投標(biāo)方案
- 婦女兒童之家管理制度
- 江蘇省揚(yáng)州市江都區(qū)城區(qū)2025屆八年級(jí)物理第二學(xué)期期末聯(lián)考試題含解析
- 《防爆安全管理》課件
- 【課件】2024年全國(guó)I、II卷新高考讀后續(xù)寫(xiě)+課件-2025屆高三英語(yǔ)一輪復(fù)習(xí)
評(píng)論
0/150
提交評(píng)論