MFC 导入类没有消息

skyandcode 2012-11-28 01:27:32
我从外部导入类到工程,该类是从CListCtrl派生的,照理说该类也可以响应WM_消息的。但是我右键点击时却找不到响应消息的选项也没有虚函数那项,请问是什么原因,要怎么解决啊?
注:这个类是在外部导入,从CListCtrl派生的。
...全文
147 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyandcode 2012-11-30
  • 打赏
  • 举报
回复
引用 13 楼 schlafenhamster 的回复:
导入的类点击右键没有WM_消息 在向导中 看看 Class info 是不是 window
这个没问题
schlafenhamster 2012-11-30
  • 打赏
  • 举报
回复
导入的类点击右键没有WM_消息 在向导中 看看 Class info 是不是 window
skyandcode 2012-11-29
  • 打赏
  • 举报
回复
引用 9 楼 coolcoffee4051982 的回复:
引用 7 楼 skyandcode 的回复:引用 6 楼 coolcoffee4051982 的回复:比较一下这两个文件的不同就发现问题了。 大侠...比较了。比如说消息映射什么的都正常.用文件比较工具看。
请问怎么使用...
skyandcode 2012-11-29
  • 打赏
  • 举报
回复
.h
#if !defined(AFX_LISTCTRLCL2_H__2CA60ECC_6A27_4FBD_8D9C_D01B2ACBBF3F__INCLUDED_)
#define AFX_LISTCTRLCL2_H__2CA60ECC_6A27_4FBD_8D9C_D01B2ACBBF3F__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ListCtrlCl.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CListCtrlCl window

// CListCtrlCl
#include "HeaderCtrlCl.h"
#include "AddressList.h"
class CListCtrlCl : public CListCtrl
{
	//DECLARE_DYNAMIC(CListCtrlCl)

public:
	CHeaderCtrlCl m_Header;
	CListCtrlCl();
	virtual ~CListCtrlCl();

public:
	
	// Overrides
	// ClassWizard generated virtual function overrides


// Implementation
public:
	virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
public:
	afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
	void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
public:
	// 行高
	int m_nRowHeight;
	int InsertColumn(int nCol, LPCTSTR lpszColumnHeading,
		int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1);
public:
	// Gradient - 渐变系数,立体背景用,不用渐变设为0
	void SetHeaderBKColor(int R, int G, int B, int Gradient);
public:
	// 设置表头高度
	void SetHeaderHeight(float Height);
	CPtrList m_ptrListCol;  //保存列颜色
	CPtrList m_ptrListItem; //保存Item颜色表
	CPtrList m_colTextColor; //保存列字体颜色
	CPtrList m_ItemTextColor; //保存单元格字体颜色
	bool FindColColor(int col ,COLORREF &color); //查找列颜色
	bool FindItemColor(int col,int row,COLORREF &color);
	bool FindColTextColor(int col,COLORREF &color); //查找列字体颜色
	bool FindItemTextColor(int col,int row,COLORREF &color);
	void SetColColor(int col,COLORREF color);  //设置列颜色
	void SetItemColor(int col,int row,COLORREF color); //设置Item颜色
	void SetColTextColor(int col,COLORREF color);   //设置列文本颜色
	void SetItemTextColor(int col,int row,COLORREF color);
	void SetRowHeigt(int nHeight); //设置行高
	void SetHeaderFontHW(int nHeight,int nWith); //设置表头字体大小
	void SetHeaderTextColor(COLORREF color);
	COLORREF m_color;
	BOOL SetTextColor(COLORREF cr);
	void SetFontHW(int nHeight,int nWith);  //设置字体的高和宽
public:
	// 字体高度
	int m_fontHeight;
public:
	// 字体宽度
	int m_fontWith;

	//{{AFX_VIRTUAL(CListCtrlCl)
protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL
protected:
	//{{AFX_MSG(CListCtrlCl)
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MYCOLORBUTTON_H__900BAE2E_90AF_4AEF_BF4E_07B7F1AA86ED__INCLUDED_)
.cpp
// ListCtrlCl.cpp : 实现文件
//

#include "stdafx.h"
#include "Addresslist.h"
#include "ListCtrlCl.h"

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

struct stColor
{
	int nRow;
	int nCol;
	COLORREF rgb;
};
// CListCtrlCl



CListCtrlCl::CListCtrlCl()
: m_nRowHeight(0)
, m_fontHeight(12)
, m_fontWith(0)
{
	m_color = RGB(0,0,0);
}

CListCtrlCl::~CListCtrlCl()
{
}

//IMPLEMENT_DYNAMIC(CListCtrlCl, CListCtrl)
BEGIN_MESSAGE_MAP(CListCtrlCl, CListCtrl)
//{{AFX_MSG_MAP(CListCtrlCl)
ON_WM_LBUTTONDOWN()
ON_WM_MEASUREITEM()
ON_WM_MEASUREITEM_REFLECT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/*BEGIN_MESSAGE_MAP(CListCtrlCl, CListCtrl)
	ON_WM_MEASUREITEM()
	ON_WM_MEASUREITEM_REFLECT()
    ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()*/
...还有一些函数实现没添出来
skyandcode 2012-11-29
  • 打赏
  • 举报
回复
引用 7 楼 skyandcode 的回复:
引用 6 楼 coolcoffee4051982 的回复:比较一下这两个文件的不同就发现问题了。 大侠...比较了。比如说消息映射什么的都正常.
好吧。
coolcoffee4051982 2012-11-29
  • 打赏
  • 举报
回复
引用 7 楼 skyandcode 的回复:
引用 6 楼 coolcoffee4051982 的回复:比较一下这两个文件的不同就发现问题了。 大侠...比较了。比如说消息映射什么的都正常.
用文件比较工具看。
若风09 2012-11-29
  • 打赏
  • 举报
回复
我感觉最好是发出来看看~
skyandcode 2012-11-28
  • 打赏
  • 举报
回复
引用 6 楼 coolcoffee4051982 的回复:
比较一下这两个文件的不同就发现问题了。
大侠...比较了。比如说消息映射什么的都正常.
coolcoffee4051982 2012-11-28
  • 打赏
  • 举报
回复
比较一下这两个文件的不同就发现问题了。
skyandcode 2012-11-28
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
VC6?关闭工程,删除.ncb,.clw等文件,然后重新打开,Rebuild All一下再试试~
试了,不行哦。我导入的类点击右键没有WM_消息,也没有添加虚函数的项... 我试了一下,导入另一个类就没问题,这类也是下载下来的。 可能是原来那个改了什么的东西...
xumaojun 2012-11-28
  • 打赏
  • 举报
回复
执行楼上的命令就可以了
lgstudyvc 2012-11-28
  • 打赏
  • 举报
回复
按照部长说的做
schlafenhamster 2012-11-28
  • 打赏
  • 举报
回复
该类是从CListCtrl派生的 把 类的头文件和 CPP 复制到 工程,工程中 加入这2个文件就可以了。
Eleven 2012-11-28
  • 打赏
  • 举报
回复
VC6?关闭工程,删除.ncb,.clw等文件,然后重新打开,Rebuild All一下再试试~

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧