Guidance Forums / wxWidgets (wxWindows) in C++ / no matching function for call to `wxTextAttr::wxTextAttr(

Search 搜索
Home Home

Forum List • Thread List • Reply • Refresh • New Topic • Search • Previous • Next First 1 Last
Message1. no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: 2003-08-23 02:20:16
i'm trying to create a new wxTextAttr but i only get the following errormessage :

no matching function for call to `wxTextAttr::wxTextAttr(

If i use wxTextAttr without attributes it works well (but don't realy makes sense ;-).

Here the full codeline :

mainTextAttr =  new wxTextAttr(wxColour(0,0,0),wxColour(255,255,255),mainTextFont);

(mainTextFont ist a wxFont object)...

What i'm doing wrong ? I'm using DevCpp with the with it bundled MinGW compiler.
Message2. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: guidance 2003-08-23 06:40:50
You may included "windows.h", try #include "wx/msw/winundef.h" after that.
Message3. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: 2003-08-23 14:47:54
i din't use "windows.h" (so using winundef.h had no effect). What else can it be ? Here the whole source ... :

#include "wx/wx.h"

// Das Anwendungsicon (unter Windows und OS/2 ist es in den Resoursen)
#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__)
    #include "mondrian.xpm"

wxChar *FILETYPES = _T("Text Dateien|*.txt|"
                       "Alle Dateien| *.*");

// Eine neue Anwendung namens "mainApp" von wxApp ableiten
class mainApp : public wxApp
    // Das Standart "OnInit()" mit einer virtuellen Funktion überschreiben
    virtual bool OnInit();

// Das Hauptframe definieren
class mainFrame : public wxFrame
    // ctor(s)
    mainFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
    long style = wxDEFAULT_FRAME_STYLE);

    // Eventhandler
    void OnQuit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
    void OnOpenFile(wxCommandEvent& event);   
    // Tectcontroll definieren
    wxTextCtrl *mainText;
    wxFont *mainTextFont;
    wxTextAttr *mainTextAttr;

    // Jede Klasse die ein wxWindows Event nutzen will braucht dieses Makro
    // Aktueller Dateiname
   wxString currentFilename;
   wxString currentDirectory;

// IDs für die Controlls und die Menü Commands
  // Menü items
  smartEdit_Quit = 1,
  smartEdit_Open = 2,

  // Es ist wichtig das "About" immer diese ID hat (wegen MAC)
  smartEdit_About = wxID_ABOUT

// Die Eventtabelle verbindet wxWindows Events mit Funktionen
BEGIN_EVENT_TABLE(mainFrame, wxFrame)
    EVT_MENU(smartEdit_Quit,  mainFrame::OnQuit)
    EVT_MENU(smartEdit_Open, mainFrame::OnOpenFile)
    EVT_MENU(smartEdit_About, mainFrame::OnAbout)

// Dieses Makro erlaubt wxWindows das Frame w?hrend der Anwendung zu erz?ugen

// Equivalent zur "main()" Funktion, das Programm startet hier
bool mainApp::OnInit()
  // Erstelle das Anwendungsfenster
  mainFrame *frame = new mainFrame(_T("smartEdit"),
                                 wxPoint(50, 50), wxSize(450, 340));
  // Zeige es an

  // Durch das zurückgeben von "TRUE" best?tigen wir den ordnungsgem??en Start
  return TRUE;

// Frame Konstruktor
mainFrame::mainFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style)
         : wxFrame(NULL, -1, title, pos, size, style)
  // Frameicon setzen

  #if wxUSE_MENUS
  // Menüleiste erstellen
  wxMenu *menuFile = new wxMenu;

  // Die Items werden den Menüpunkten hinzugefügt
  wxMenu *helpMenu = new wxMenu;
  helpMenu->Append(smartEdit_About, _T("&?ber...tF1"), _T("Zeigt den "?ber" Dialog"));
  menuFile->Append(smartEdit_Open, _T("?&ffnentCTRL+O"), _T("?ffnet eine Datei"));
  menuFile->Append(smartEdit_Quit, _T("B&eendentAlt+F4"), _T("Beendet das Programm"));

  // Nun wird das Menü der Menüleiste hinzugefügt
  wxMenuBar *menuBar = new wxMenuBar();
  menuBar->Append(menuFile, _T("&Datei"));
  menuBar->Append(helpMenu, _T("&Hilfe"));

  // ... und die Menüleiste dem Frame hinzugefügt
  #endif // wxUSE_MENUS

    // Eine Statusleiste erstellen

  #endif // wxUSE_STATUSBAR
  // Textcontroll hinzufügen
  mainTextFont = new wxFont(14,wxSWISS,wxNORMAL,wxNORMAL,FALSE,"",wxFONTENCODING_SYSTEM);
  mainTextAttr =  new wxTextAttr(wxColour(0,0,0),wxColour(255,255,255),mainTextFont);
  mainText = (wxTextCtrl *) NULL;
  mainText = new wxTextCtrl(this, -1, wxString(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
// Funktion zum ?ffnen einer Datei
void mainFrame::OnOpenFile(wxCommandEvent&)
  wxFileDialog *openFileDialog = new wxFileDialog(this, "Datei ?ffnen", "", "", FILETYPES, wxOPEN, wxDefaultPosition);
  // Falls "OK" Datei in das Textfenster laden
  if(openFileDialog->ShowModal() == wxID_OK)

// Funktion zum beenden des Programms
void mainFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
  // Schlie?t das Fenster

// Funktion für den "?ber..." Knopf
void mainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
    wxString msg;
    msg.Printf( _T("smartEdit 0.01n"));

    wxMessageBox(msg, _T("?ber smartEdit"), wxOK | wxICON_INFORMATION, this);
Message4. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: guidance 2003-08-23 16:00:28
According to the doc:

wxTextAttr(const wxColour& colText, const wxColour& colBack = wxNullColour, const wxFont& font = wxNullFont)

I think it should be:
mainTextFont = new wxFont(14, wxSWISS, wxNORMAL, wxNORMAL, FALSE, "", wxFONTENCODING_SYSTEM);
mainTextAttr =  new wxTextAttr(wxColour(0,0,0),wxColour(255,255,255), *mainTextFont);
Message5. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: 2003-08-23 21:41:15
Thank, now it works !
Message6. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: 2003-08-23 21:44:33
I didn't need thee whole wxTextAttr object, SetFont() was enought.
Message7. Re: no matching function for call to `wxTextAttr::wxTextAttr(
Posted by: guidance 2003-08-23 22:04:02
If you noticed the "candidate" prompt message from the compiler, you must can solve this problem by yourself.
Forum List • Thread List • Reply • Refresh • New Topic • Search • Previous • Next First 1 Last
© Fri 2023-1-27  Guidance Laboratory Inc. Hits:0