首页 随笔 乐走天涯 程序资料 评论中心 Tag 论坛 其他资源 搜索 联系我 关于 RSS

标签视(一)


日期: 2002-01-12 14:00 | 联系我 | 关注我: Telegram, Twitter

本程序实现同一文档多视、但在同一时刻只有一个可见,参见下图。

 

首先,创建一个CWnd派生类:

class CTabWnd : public CWnd

{

// Construction

public:

CTabWnd();

// Generated message map functions

protected:

//{{AFX_MSG(CTabWnd)

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

afx_msg void OnPaint();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

然后,添加Create函数来初始化控件:

BOOL CTabWnd::Create(DWORD dwStyle, CWnd* pParentWnd, UINT nID)

{

CRect rect, parent;

ASSERT(pParentWnd);

if (!CWnd::Create(NULL, "SealiteTabWnd", WS_CHILD|WS_VISIBLE, rect, pParentWnd, nID, NULL))

return FALSE;

m_dwStyle=dwStyle;

return TRUE;

}

下面定义一个CreateView函数:

typedef struct

{

CWnd *pWnd;

char szLabel[32];

int x_min, x_max;

}TABWND_MEMBER;

CList <TABWND_MEMBER *,TABWND_MEMBER *> m_viewList;

BOOL CreateView(LPCTSTR lpszLabel, CRuntimeClass *pViewClass, CCreateContext *pContext);

当父窗口大小改变时, 新创建的视需要重新改变大小, 下面增加WM_SIZEPARENT的处理函数:

LRESULT CTabWnd::OnSizeParent(WPARAM, LPARAM lParam)

{

PostMessage(WM_TABRESIZE);

return 0;

}

>>> DOWN !!! >>>下载源代码及演示程序


 文章评论
目前没有任何评论.

↓ 快抢占第1楼,发表你的评论和意见 ↓

发表你的评论
如果你想针对此文发表评论, 请填写下列表单:
姓名: * 必填 (Twitter 用户可输入以 @ 开头的用户名, Steemit 用户可输入 @@ 开头的用户名)
E-mail: 可选 (不会被公开。如果我回复了你的评论,你将会收到邮件通知)
反垃圾广告: 为了防止广告机器人自动发贴, 请计算下列表达式的值:
5 x 3 + 5 = * 必填
评论内容:
* 必填
你可以使用下列标签修饰文字:
[b] 文字 [/b]: 加粗文字
[quote] 文字 [/quote]: 引用文字

 
首页 随笔 乐走天涯 猎户星 Google Earth 程序资料 程序生活 评论 Tag 论坛 资源 搜索 联系 关于 隐私声明 版权声明 订阅邮件

程序员小辉 建站于 1997 ◇ 做一名最好的开发者是我不变的理想。
Copyright © XiaoHui.com; 保留所有权利。