错误 C2440:'static_cast':无法从 'void (__thiscall Visualizza::* )(char [])' 转换为 'AFX_PMSG'
error C2440: 'static_cast' : cannot convert from 'void (__thiscall Visualizza::* )(char [])' to 'AFX_PMSG'
有人可以帮助我吗?
我正在通过 VS 2010 Ultimate 做一个 MFC 应用程序。
ps。我是 C++ 的新手。
此应用程序用于在组合框文件名上打印。
这是 .cpp 文件
BEGIN_MESSAGE_MAP(Visualizza, CDialogEx)
ON_CBN_SELCHANGE(IDC_COMBO1, &Visualizza::OnCbnSelchangeCombo1)
END_MESSAGE_MAP()
// Visualizza message handlers
void Visualizza::OnCbnSelchangeCombo1(char util[20])
{
std::string s = util;
LPTSTR x = new TCHAR[s.size() + 1];
stampa.AddString(x);
}
这是 .h 文件
#pragma once
#include "afxwin.h"
// Visualizza dialog
class Visualizza : public CDialogEx
{
DECLARE_DYNAMIC(Visualizza)
public:
Visualizza(CWnd* pParent = NULL); // standard constructor
virtual ~Visualizza();
// Dialog Data
enum { IDD = IDD_DIALOG1 };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnCbnSelchangeCombo1(char util[20]);
CComboBox stampa;
};
注册通知处理程序在 CComboBox
文档的 Remarks 部分进行了说明。特别需要注意以下几点:
The parent's function prototype is as follows:
afx_msg void memberFxn( );
换句话说:您的用户提供的通知处理程序不能接受任何参数。
void Visualizza::OnCbnSelchangeCombo1(char util[20])
需要改为
void Visualizza::OnCbnSelchangeCombo1()
使其与 ON_CBN_SELCHANGE(IDC_COMBO1, &Visualizza::OnCbnSelchangeCombo1)
消息映射条目兼容。
有人可以帮助我吗? 我正在通过 VS 2010 Ultimate 做一个 MFC 应用程序。 ps。我是 C++ 的新手。 此应用程序用于在组合框文件名上打印。
这是 .cpp 文件
BEGIN_MESSAGE_MAP(Visualizza, CDialogEx)
ON_CBN_SELCHANGE(IDC_COMBO1, &Visualizza::OnCbnSelchangeCombo1)
END_MESSAGE_MAP()
// Visualizza message handlers
void Visualizza::OnCbnSelchangeCombo1(char util[20])
{
std::string s = util;
LPTSTR x = new TCHAR[s.size() + 1];
stampa.AddString(x);
}
这是 .h 文件
#pragma once
#include "afxwin.h"
// Visualizza dialog
class Visualizza : public CDialogEx
{
DECLARE_DYNAMIC(Visualizza)
public:
Visualizza(CWnd* pParent = NULL); // standard constructor
virtual ~Visualizza();
// Dialog Data
enum { IDD = IDD_DIALOG1 };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnCbnSelchangeCombo1(char util[20]);
CComboBox stampa;
};
注册通知处理程序在 CComboBox
文档的 Remarks 部分进行了说明。特别需要注意以下几点:
The parent's function prototype is as follows:
afx_msg void memberFxn( );
换句话说:您的用户提供的通知处理程序不能接受任何参数。
void Visualizza::OnCbnSelchangeCombo1(char util[20])
需要改为
void Visualizza::OnCbnSelchangeCombo1()
使其与 ON_CBN_SELCHANGE(IDC_COMBO1, &Visualizza::OnCbnSelchangeCombo1)
消息映射条目兼容。