Einstieg C++ mit GUI

Hi

hab mal den Einstieg in die GUI-Programmierung in C++ mit wxWidgets, DEV C++ gemacht.

Hab schon sehr gute Erfahrung mit der Gui-Erstellung unter Delphi, im C++ schaffe ich den Einstieg irgendwie nicht… der Compiler motzt immer.

Ich suche nach einem ganz einfachen Tutorial, wo ich soetwas realisieren könnte:

[…]

BEGIN\_EVENT\_TABLE(newProgramDlg,wxDialog) 
 EVT\_BUTTON(ID\_WXBUTTON1, newProgramDlg::open\_mouth:nButtonSelect)
END\_EVENT\_TABLE()

[…]

void newProgramDlg::CreateGUIControls(void)
{
 WxMemo1 = new wxTextCtrl(this, ID\_WXMEMO1, "" , wxPoint(8,24),wxSize(457,78) , wxHSCROLL | wxTE\_MULTILINE);
}

[…]

void newProgramDlg::open\_mouth:nButtonSelect(wxCommandEvent& command)
{
 WxMemo1.SetValue("Dies ist mein neuer Wert");
 // wxMessageBox("Ein schoener Text");
}

Wenn ich soetwas mache motzt der Compiler mit:

request for member ‚SetValue‘ in ‚this->newProgramDlg::WxMemo1‘, which is of non-aggregate type ‚wxTextCtrl*‘

Der zweite Befehl (als Kommentar dargestellt), funktioniert aber !

Vielen Dank für eure Hilfe !
Ich hoffe in Zukunft selber bei Problemen helfen zu können.

Gruss chi

Wenn ich soetwas mache motzt der Compiler mit:

request for member ‚SetValue‘ in
‚this->newProgramDlg::WxMemo1‘, which is of non-aggregate
type ‚wxTextCtrl*‘

Dein Problem ist, dass du versuchst, auf den Pointer WxMemo1 mit dem Punkt-Operator zuzugreifen. Damit das funktioniert, musst du den Pointer aber erst dereferenzieren bzw. gleich den ->-Operator benutzen. Also

WxMemo1-\>SetValue( "Foo" );
// oder
(\*WxMemo1).SetValue( "Bar" );

he cool… das geht ja wirklich… :wink:
thx.

schönen Abend.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

wieso geht das jetzt nicht?
Habe jetzt ein bisschen weiter gemacht… und bin wieder steckengeblieben:

void newProgramDlg::open\_mouth:nButtonSelect(wxCommandEvent& command)
{
 wxString ganzerInput = WxMemo1-\>GetValue();
 int posStart = ganzerInput.Find("test");
 WxMemo2-\>SetValue(posStart); 
}

„wxString::wxString(int)“ is private

Danke für Hilfe…
Gruss
chi

Hi,

void newProgramDlg::open_mouth:nButtonSelect(wxCommandEvent&
command)
{
wxString ganzerInput = WxMemo1->GetValue();
int posStart = ganzerInput.Find(„test“);
WxMemo2->SetValue(posStart);
}

„wxString::wxString(int)“ is private

Naja, also int kannst du natürlich nicht in einen wxString umwandeln.

int posStart = ganzerInput.Find(„test“);
wxString str;
str SetValue(str);

Ich hoffe das funktioniert, hab wxWidgets nur daheim und kanns hier nicht ausprobiern :wink:

bye
Christoph

Off-Topic

Hab schon sehr gute Erfahrung mit der Gui-Erstellung unter
Delphi

Nicht, dass ich hier den Klugscheisser spielen will, aber hast Du schon mal überlegt den C++ Builder von Borland zu nehmen ? Der ist mit Delphi nahezu identisch.

… und hat mit C++ nicht mehr wirklich viel zu tun :wink: - aber hier gehts ja nur um GUI und nicht C++, also isser wieder angebracht :smiley:

Aber ich finds gut, mit wxWidgets und (wx)Dev-Cpp anzufangen, da hat man hinterher immerhin mehr gelernt also bei dem Borland zeux. (Und es läuft sogar unter Unix/Mac, was man von Kylix nicht wirklich behaupten kann)

bye
Christoph

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]