MFC CButton Hello

//Test.h

#include <afxwin.h>

#define IDC_PRINT 0X0001

class CTestApp:public CWinApp

{

public:

     virtual BOOL InitInstance();

};

class CTestWnd:public CWnd

{

public:

     CTestWnd();

     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

     afx_msg void OnPushButtonClicked();

private:

     CButton m_wndPushButton;

     DECLARE_MESSAGE_MAP()

};

//Test.cpp

#include "Test.h"

CTestApp test;

BOOL CTestApp::InitInstance()

{

     m_pMainWnd=new CTestWnd;

     m_pMainWnd->ShowWindow(m_nCmdShow);

     m_pMainWnd->UpdateWindow();

     return TRUE;

}

BEGIN_MESSAGE_MAP(CTestWnd,CWnd)

     ON_BN_CLICKED(IDC_PRINT,OnPushButtonClicked)

     ON_WM_CREATE()

END_MESSAGE_MAP()

CTestWnd::CTestWnd()

{

     CString strWndClass=AfxRegisterWndClass(

         0,

         AfxGetApp()->LoadStandardCursor(IDC_ARROW),

         (HBRUSH)(COLOR_3DSHADOW),

         AfxGetApp()->LoadStandardIcon(IDI_WINLOGO));

     CreateEx(0,strWndClass,_T("Hello"),

         WS_OVERLAPPED|WS_SYSMENU|WS_CAPTION|WS_MINIMIZEBOX,

         CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

         NULL,NULL,NULL);

     CRect rect(0,0,200,150);

     CalcWindowRect(&rect);

     SetWindowPos(NULL,0,0,rect.Width(),rect.Height(),

         SWP_NOZORDER|SWP_NOMOVE|SWP_NOREDRAW);

}

afx_msg int CTestWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

     if(-1==CWnd::OnCreate(lpCreateStruct))return -1;

     CClientDC dc(this);

     CString str(_T("Hello"));

     CSize s=dc.GetTextExtent(str);

     m_wndPushButton.Create(str,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,

         CRect(40,30,40+s.cx*2,30+s.cy*2),

         this,IDC_PRINT);

     return 0;

}

void CTestWnd::OnPushButtonClicked()

{MessageBox(_T("Hello"));}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值