簡體   English   中英

錯誤 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 應用程序。 附言。 我是新的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM