您的位置:首页 > 其它

4-2 MFC学习之核心类库(CWnd)

2016-01-17 14:33 211 查看
随着学习的深入将会不断补充

先以实例入手

#include "ChatDlg.h"
class CTestDlg2Dlg : public CDialogEx
{
ChatDlg m_cdlg;
enum{IDC_NAME = 1008, IDC_NAME2, IDC_BUTTON11};
CWnd m_wnd, m_wnd2, m_wndButton;



void CTestDlg2Dlg::OnBnClickedButton2()
{
if(!m_wnd.m_hWnd)
{
m_wnd.CreateEx(WS_EX_CLIENTEDGE, _T("Edit"), _T(""), WS_CHILD|WS_VISIBLE, CRect(10,80,110,100), this, IDC_NAME);
}

if(!m_wnd2.m_hWnd)
{
m_wnd2.Create(_T("Edit"), _T(""), WS_CHILD|WS_VISIBLE, CRect(10,110,110,130), this, IDC_NAME2);
}
}

void CTestDlg2Dlg::OnBnClickedButton3()
{
if(!m_wndButton.m_hWnd)
{
m_wndButton.Create(_T("BUTTON"), _T("Button测试"), WS_CHILD|WS_VISIBLE, CRect(10, 140, 110, 160), this, IDC_BUTTON11);
}
}



将句柄转为指针

不要保存指针,只能当临时指针使用,因为可能会被清除

void CTestDlg2Dlg::OnBnClickedButton3()
{
if(!m_wndButton.m_hWnd)
{
m_wndButton.Create(_T("BUTTON"), _T("Button测试"), WS_CHILD|WS_VISIBLE, CRect(10, 140, 110, 160), this, IDC_BUTTON11);
}

HWND hWnd = ::GetDlgItem(m_hWnd, IDC_BUTTON11);
CWnd* p = CWnd::FromHandle(hWnd);

//CButton* pbtn = (CButton*)GetDlgItem(IDC_BUTTON11);
CButton* pbtn = (CButton*)p;
pbtn->SetWindowTextW(_T("change"));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: