函数重载的问题?
首先创建基于对话框的MFC应用程序;
1:从CListBox类派生新类CBKListBox,用于添加位图背景;
2:为CBKListBox添加两个成员变量;
3:在CBKList类构造函数中些一些代码;
4:重载=WM_CTLCOLOR的消息响应函数CtlColor,并添加如下代码:HBRUSH:CBKListBox:CTLColor()........
请问一下第四步是怎么实现的啊?我怎么没找到那个什么消息响应函数?还望高手赐教 不甚感激啊~ 展开
在类视图中,选中CBKListBox类点击右键->选择Add Windows Message Handler.. 可参考下图。在弹出的对话框中左侧列表选择WM_CTLCOLOR双击会出现在右侧列表中即可。
//.h 头文件
class CBKListBox : public CListBox
{
// Construction
public:
CBKListBox();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBKListBox)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CBKListBox();
// Generated message map functions
protected:
//{{AFX_MSG(CBKListBox)
//声明OnCtlColor
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
// BKListBox.cpp : implementation file
//
#include "stdafx.h"
#include "MFCGetHideFiles.h"
#include "BKListBox.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBKListBox
CBKListBox::CBKListBox()
{
}
CBKListBox::~CBKListBox()
{
}
BEGIN_MESSAGE_MAP(CBKListBox, CListBox)
//{{AFX_MSG_MAP(CBKListBox)
ON_WM_CTLCOLOR() //响应WM_CTLCOLOR消息
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBKListBox message handlers
//实现OnCtlColor函数
HBRUSH CBKListBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CListBox::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}