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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[转]如何将属性表嵌入对话框中显示

發(fā)布時(shí)間:2024/9/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]如何将属性表嵌入对话框中显示 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【最終結(jié)果圖】

?

【簡(jiǎn)單設(shè)計(jì)流程】

1. 創(chuàng)建工程:根據(jù)VC向?qū)С绦騽?chuàng)建一個(gè)Dialog Based應(yīng)用程序,進(jìn)入資源視圖,在對(duì)話框模板上創(chuàng)建一個(gè)Picture控件來(lái)設(shè)置屬性頁(yè)的顯示范圍,調(diào)整好Picture到合適大小,如下圖:

??? 我們假設(shè)Picture控件的ID為IDC_SHEET_RECT。

?注:這是教程,用不著過(guò)于拘泥界面的美觀!

?

2. 創(chuàng)建三個(gè)屬性頁(yè)模板:在VC的資源視圖中插入一個(gè)對(duì)話框,拖動(dòng)到合適大小,修改對(duì)話框的樣式,將Popup修改為Child,Border樣式設(shè)置為T(mén)hin或None

??? 然后將該對(duì)話框模板復(fù)制三份,我們就有了三份屬性頁(yè)模板,如下圖:

?

3. 然后在資源視圖的字符串表中添加三個(gè)資源字符串作為屬性頁(yè)的標(biāo)題,如下圖:

?

4. 好了,現(xiàn)在前期準(zhǔn)備工作都做充分了,開(kāi)始進(jìn)行編碼了,其實(shí)編碼就十來(lái)行簡(jiǎn)單的代碼:

?

代碼 代碼
代碼
// 在對(duì)話框類(lèi)(假設(shè)類(lèi)名為CMyDialog)中添加屬性表和屬性頁(yè)的成員變量
// mydialog.h#include <list>
class CMyDialog : public CDialog
{
public:
// ... 省略private:

std::list
<CPropertyPage*> m_pPageList;
CPropertySheet m_propSheet;

// ... 余下的也省略
};

// mydialog.cpp
CMyDialog::CMyDialog(CWnd* pParent /* = NULL */) : CDialog(CMyDialog::IDD, pParent)
{
m_hIcon
= AfxGetApp()->LoadIcon(IDR_MAINFRAME);
// 初始化屬性頁(yè)和屬性表
m_pPageList.push_back(new CPropertyPage(IDD_PAGE1, IDS_PAGE1));
m_pPageList.push_back(
new CPropertyPage(IDD_PAGE2, IDS_PAGE2));
m_pPageList.push_back(
new CPropertyPage(IDD_PAGE3, IDS_PAGE3));

std::list<CPropertyPage*>::const_iterator iter = m_pPageList.begin();
???
for (; iter != m_pPageList.end(); ++iter)
??? {
??????? m_propSheet.AddPage(
*iter);
??? }

}

BOOL CMyDialog::OnInitDialog()
{
// 初始化對(duì)話框
CDialog::OnInitDialog();
// ... 省略部分工程創(chuàng)建自動(dòng)添加的代碼
// 創(chuàng)建屬性表
m_propSheet.Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT); CRect rcSheet;
??GetDlgItem(IDC_SHEET_RECT)->
GetWindowRect(rcSheet);
ScreenToClient(rcSheet);
m_propSheet.SetWindowPos(NULL, rcSheet.left, rcSheet.top,
0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); return TRUE;}

5. 至此,我們完成了創(chuàng)建一個(gè)嵌入式屬性表的所有工作,編譯和運(yùn)行試試!

轉(zhuǎn)載于:https://www.cnblogs.com/zhanglibo0626/archive/2011/09/01/2161553.html

總結(jié)

以上是生活随笔為你收集整理的[转]如何将属性表嵌入对话框中显示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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