编写ATL控件的简单做法

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

        ATL并不像MFC库那样提供了很多的控件窗口类,因此要使用ATL的话需要自己去封装。封装的做法很简单。比如现在我需要一个列表控件,可以这样进行封装。首先新建一个C++类:CMiniComboBox,它派生自ATL::CWindow,代码如下:

// MiniComboBox.h

#pragma once

#include <atlctl.h>

class CMiniComboBox:public ATL::CWindow
{
public:

	// 在ComboBox中添加一个下拉项
	LRESULT AddString( LPCTSTR lpszString );

	virtual ~CMiniComboBox(void);
};

// MiniComboBox.cpp

#include "stdafx.h"
#include "MiniComboBox.h"


CMiniComboBox::~CMiniComboBox(void)
{
}

LRESULT CMiniComboBox::AddString( LPCTSTR lpszString )
{
   return ::SendMessage( m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString );
}


       在ATL对话框框类中这样使用:

CMiniComboBox cmbLan;
	cmbLan.Attach(GetDlgItem(IDC_CMB_LANGUAGE)); 
	cmbLan.AddString(_T("C++"));
	cmbLan.AddString(_T("C#"));

参考文献:

1. ATL/WTL 对话框和控件






原文地址:https://www.cnblogs.com/lanzhi/p/6470314.html