[英]error C2440: 'static_cast' : cannot convert from 'void (__thiscall Visualizza::* )(char [])' to 'AFX_PMSG'
有人能幫我嗎? 我正在通過 VS 2010 Ultimate 執行 MFC 應用程序。 附言。 我是新的 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
文檔的備注部分解釋了注冊通知處理程序。 特別是,需要遵循以下幾點:
父級的function原型如下:
afx_msg void memberFxn( );
換句話說:您的用戶提供的通知處理程序不能采用任何 arguments。
void Visualizza::OnCbnSelchangeCombo1(char util[20])
將需要更改為
void Visualizza::OnCbnSelchangeCombo1()
使其與ON_CBN_SELCHANGE(IDC_COMBO1, &Visualizza::OnCbnSelchangeCombo1)
消息 map 條目兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.