酱坛子

专注C++技术 在这里写下自己的学习心得 感悟 和大家讨论 共同进步(欢迎批评!!!)

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  66 Posts :: 16 Stories :: 236 Comments :: 0 Trackbacks

公告

王一伟 湖南商学院毕业 电子信息工程专业

常用链接

留言簿(19)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 382428
  • 排名 - 63

最新随笔

最新评论

阅读排行榜

评论排行榜

我现在想把CButton重新封装下,一开始就遇见了问题,希望大家帮忙指导下
////////////////////////////////////////TCButton.h
#ifndef TCButton_H_
#define TCButton_H_
class TCButton:public CButton
{
public:
 //! Standard constructor.
 TCButton();
 //! Standard destructor.
 virtual ~TCButton();
};
#endif

////////////////////////////////////////TCButton.cpp
#include "stdafx.h"
#include "TCButton.h"
TCButton::TCButton()
{
 Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,40,20), this, 1);
}
TCButton::~TCButton()
{
}

现在我想在另外的Dailog中使用这个Button的话,我想实现

我想在堆内存中TCButton myButton;
然后再进行父窗口的指定myButton.SetParent(CWnd* pWnd);

这样的效果怎么做啊?

如果是new出来的好办,我可以引用带参数的构造函数,传入
Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(0,0,40,20), this, 1)的第3个参数CWnd* pParentCwnd
,但是如果我声明在.h文件中呢  我不知道怎么做 呵呵

希望能给点提示:)

posted on 2007-03-06 00:55 @王一伟 阅读(3692) 评论(4)  编辑 收藏 引用

Feedback

# re: MFC CButton封装的问题 2007-03-06 10:01 郁郁寡欢
你的类加一个默认构造函数。再增加一个方法CreateEx。由用户调用。
无论是new出来还是直接申明的变量,都要先调用你的CreateEx才能用,mfc的控件都是这样干的。

当然你也可以加多几种重载的构造函数,这样new的时候可以选择直接生成对象
  回复  更多评论
  

# re: MFC CButton封装的问题 2007-03-06 10:39 王一伟
好的 我尝试一下
晚上争取把上图搞定

谢谢 多谢支持了
  回复  更多评论
  

# re: MFC CButton封装的问题 2007-03-06 18:38 macoting
// WordMyView.cpp : implementation of the CWordMyView class
//

#include "stdafx.h"
#include "WordMy.h"

#include "WordMyDoc.h"
#include "WordMyView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CWordMyView

IMPLEMENT_DYNCREATE(CWordMyView, CEditView)

BEGIN_MESSAGE_MAP(CWordMyView, CEditView)
//{{AFX_MSG_MAP(CWordMyView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWordMyView construction/destruction

CWordMyView::CWordMyView()
{
// TODO: add construction code here

}

CWordMyView::~CWordMyView()
{
}

BOOL CWordMyView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs

BOOL bPreCreated = CEditView::PreCreateWindow(cs);
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping

return bPreCreated;
}

/////////////////////////////////////////////////////////////////////////////
// CWordMyView drawing

void CWordMyView::OnDraw(CDC* pDC)
{
CWordMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CWordMyView printing

BOOL CWordMyView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default CEditView preparation
return CEditView::OnPreparePrinting(pInfo);
}

void CWordMyView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// Default CEditView begin printing.
CEditView::OnBeginPrinting(pDC, pInfo);
}

void CWordMyView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// Default CEditView end printing
CEditView::OnEndPrinting(pDC, pInfo);
}

/////////////////////////////////////////////////////////////////////////////
// CWordMyView diagnostics

#ifdef _DEBUG
void CWordMyView::AssertValid() const
{
CEditView::AssertValid();
}

void CWordMyView::Dump(CDumpContext& dc) const
{
CEditView::Dump(dc);
}

CWordMyDoc* CWordMyView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWordMyDoc)));
return (CWordMyDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CWordMyView message handlers
  回复  更多评论
  

# re: MFC CButton封装的问题 2007-03-06 18:39 macoting
填空~~~帮我看看  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理