日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动窗口的制作暨CSizingControlBar类的使用说明

發(fā)布時間:2024/4/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动窗口的制作暨CSizingControlBar类的使用说明 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

動窗口的制作暨CSizingControlBar類的使用說明

?

***********************************************************

?

??本文在實現(xiàn)過程中,為了方便起見,參照VC 知識庫《輕松實現(xiàn)類VC界面》。

?

一、實現(xiàn)原理
圖中右側(cè)浮動窗口的實現(xiàn)類是從CControlBar派生出來的,我們并不需要從頭到尾實現(xiàn)該類,因為Cristi Posea先生已經(jīng)為我們實現(xiàn)了一個稱為CSizingControlBar的類,而且做得相當完美!我們所要做的便是好好地利用該類,為了盡可能地簡潔,將CSizingControlBar類修改了一下并命名為CCoolBar,接下來我們將詳細介紹如何利用該類實現(xiàn)我們所需的界面。

二、實現(xiàn)步驟示例
[1]前期準備
已知一個單文檔的MFC工程TESS,其它選項默認。
將本文示例代碼中的CSizingControlBar類源文件sizecbar.h sizecbar.cpp 和CCoolBar類源文件scbarg.h scbarg.cpp 四個文件復制到工程目錄下。
在菜單Project->Add to project->Files將四個文件加入工程中,此時在ClassView中將出現(xiàn)了一個稱為CCoolBar的類。
在stdafx.h文件中加上
#include "sizecbar.h"
#include "scbarg.h"

[2]開始編碼

2.1 為CMainFrame增加成員變量??? //浮動窗口對象

CCoolBar??? m_wndMyBar;

以下代碼需要添加到CMainFrame::OnCreate,方法與普通工具條的創(chuàng)建沒有太大的區(qū)別!

2.2 創(chuàng)建ControlBar

//創(chuàng)建浮動窗口—日志欄if(!m_wndMyBar.Create(_T("日志欄"),??????? //浮動窗口名稱this,????? ?????????//父指針CSize(300,200),???? //窗口大小TRUE,??????????????? //是否需要gripper224))??????????????? //窗口ID?????? {????????????? TRACE0("未能創(chuàng)建日志欄!\n");??????????????????? return -1;?????? }

?

2.3 停靠控制?? //設置ControlBar風格,必須在工具欄風格設置之后

//浮動窗口—日志欄風格

?? m_wndMyBar.SetBarStyle(m_wndMyBar.GetBarStyle()|? CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

?? m_wndMyBar.EnableDocking(CBRS_ALIGN_ANY);??

? DockControlBar(&m_wndMyBar,

AFX_IDW_DOCKBAR_RIGHT);//停靠在右邊

?? 此時我們已經(jīng)生成了一個控制條窗口,但窗口中還沒有任何東西!讓我們來做最后一件事情:往窗口添加所需部件!

2.4 向浮動窗口中添加我的控件

這個問題看似有些麻煩其實相當簡單:我們只要在創(chuàng)建這些控件時將控制條窗口指針作為父窗口指針賦值給這些控件即可!

[1]將屬性頁放入右邊的控制條
本文的示例代碼中提供了一個稱為CCoolTabCtrl的封裝類,屬性頁的封裝類,我們用它可以簡單地創(chuàng)建出TabCtrl,先請看如下代碼

(1)在CMainFrame頭文件中聲明成員變量:

????????????? CCoolTabCtrl ????????m_TabCtrl;

(2)在CMainFrame::OnCreate方法中,在浮動窗口創(chuàng)建代碼之后,添加屬性頁創(chuàng)建代碼:

? ?m_TabCtrl.Create(

TCS_DOWN|WS_CHILD|WS_VISIBLE,???????? //屬性頁風格

CRect(0,0,250,200),????????????????????????? //屬性頁大小

&m_wndMyBar,2046);??????????????????????? //父窗口指針及ID

?[2] 向?qū)傩皂撝刑砑訉υ捒?/p>

? 首先在資源編輯器里制作一個CHILD類型的無BORDER對話框,ID為IDD_LOG,

并以此為模板生成CSysLog類。需要注意的是,希望添加到屬性頁m_TabCtrl中的對話框,在其類定義和實現(xiàn)文件中必須分別加上DECLARE_DYNCREATE(CSysLog)和IMPLENMENT_DYNCREATE(CSysLog,CDialog)。

然后在CMainFrame::OnCreate方法中m_TabCtrl 創(chuàng)建代碼之后,添加:

m_TabCtrl.AddPage(

RUNTIME_CLASS(CSysLog),??????????? //對話框映射的運行時類

IDD_LOG,????????????????????? //對話框ID

"日志",??????????????? ?????//添加對話框頁的頁名

IDI_TEXT);???????????????? //添加對話框頁的圖標

[3]最后,更新屬性頁面

?????? m_TabCtrl.UpdateWindow();

?

轉(zhuǎn)載于:https://www.cnblogs.com/kangwang1988/archive/2010/06/12/1757198.html

總結(jié)

以上是生活随笔為你收集整理的动窗口的制作暨CSizingControlBar类的使用说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。