GUI



  • hi,

    vorerst muss ich drum bitten: lacht mich bitte nich aus 😉 ich weis das klingt komisch, aber ich komm mir grad verarscht vor

    ich hab vorher immer mit "normalen" c++ gearbeitet (C++ Builder 4 bzw. X), aber da ich kein kostenloses prog zur gui programmierung gefunden hab, hab ich mir eins für visual c++ gezogen (Visual C++ 2005 Express)

    hab angefangen zu coden und wollte mal n kleinen testlauf machen.
    bei einer ganz einfachen sache scheitert es. es geht ua darum, eine checkbox automatisch "anzuklicken" (also ohne den benutzer)

    chkDl->Checked=true;
    

    (wobei chkDl der name der box ist (klar))
    1. seit wann muss man denn sachen wie "chkDl" extra nochmal deklariern?! oO
    2. was soll diese fehlermeldung

    rror C2227: Links von "->Checked" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.

    bitte sagt mir wenn das nich der einzige unterschied is. dann hau ich mir das gleich wieder von der platte



  • Hmm... du hast dich nen bissel verrant:
    1. Visual C++ 2005 Express unterstütz garkein MFC...
    2. Meinst du WinAPI?!
    3. Dann musst dus anders machen 😃



  • wieso is denn das so schwer verdammt?^^

    kann es denn nich einfach mal n kostenlosen und guten c++ gui editor geben?
    ja gibts da irgendwo tuts wo ich nachlesen kann wie ich das machen soll?

    und nein es ist c++ 2005 express 😉



  • und nein es ist c++ 2005 express

    Tja... dann kannst du nur Konsole bzw. WinAPI programmieren... hmm tja nicht MFC 😉

    Microsoft Foundation Class ist != M[b]icro[b]soft Visual C++ Express Edition 😃

    Naja... wenn du also nun auf eine programmierung mit GUI umsteigen willst... kannst du das per WinAPI machen(Tutorial: www.win-api.de) oder du suchst dir bsw. wxWidget oder gt aus... wobei zu beachten ist, das WinAPI nur auf Windows "funktioniert" bzw. nicht plattformunabhängig ist...



  • Naja, nur Konsole und WinAPI ist ja nun auch nicht ganz richtig. Klar, mit dem was er bisher hat, kann er nur das machen. Aber wie wäre es, wenn man ihn aufklärt, das man auch weitere Libs und Toolkits in der Express benutzen kann?

    Mir fällt da spontan

    http://smartwin.sourceforge.net/
    http://upp.sf.net/
    http://www.wxwidgets.org/
    http://www.fox-toolkit.org

    ein. 😃 Sooo begrenzt ist man mit der Express nun auch nicht. 😉



  • (D)Evil schrieb:

    Tja... dann kannst du nur Konsole bzw. WinAPI programmieren... hmm tja nicht MFC 😉

    Hmm... Du hast wohl ganz vergessen, dass es da noch das .NET-Framework gibt... und die Express-Versionen sind "primär" dafür gedacht, den Einstieg in das .NET-Framework zu ermöglichen...

    Das erzeugt aber bei VC++ Express leider sehr viel Verwirrung, da hier die meisten "neuen" einfach die GUI-Entwicklung machen und sich dabei gar nicht bewusst sind, dass sie eigentlich C++/CLI machen!!!

    Also: Der GUI-Designer in der VC++ Express-Edition erstellt Windows-Forms Applikationen, die das .NET-Framework voraussetzen!
    Und Fragen dazu gehören nach "C++/CLI"...

    Und zum eigentlichen Problem: Du musst etwas mehr Code zeigen... was ist denn "chkDl"?



  • ja chkDl is einfach der name von ner checkbox

    [name] -> [eigenschaft] = [wert]

    werd mal das WinAPI und die anderen 2 ausprobieren. mal schaun

    /Edit: hab mir mal das smartwin runtergeladen und installier. habs gestartet, das programm hat 2 datein konvertiert, aber es is immer noch so wie am anfang oO



  • Hallo,
    ähm, und wenn Du es einfach mit:

    // Möglichkeit 1 
    CheckDlgButton(IDC_CHECK1, TRUE); // IDC_CHECK1 ist die ID der Checkbox!
    // probierst???
    

    Aber es gehen auch andere möglichkeiten

    // beide Vars sind an das Control gebunden, also steht irgendwo auch :
    void CtestDlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	DDX_Control(pDX, IDC_CHECK1, cCheck);
    	DDX_Check(pDX, IDC_CHECK1, bCheck);
    }
    // in OnInit() zum test:
    cCheck.SetCheck(TRUE); // cCheck ist: CButton cCheck;
    //CheckDlgButton(IDC_CHECK1, TRUE);
    
    // wenn so, dann muß danach
    bCheck = 1; // bCheck ist  BOOL bCheck;
    // hier
    UpdateData(FALSE); // stehen damit die CheckBox auch aktiviert wird
    

    Ich möchte noch sagen ich hab das VS2005 Enterprise Ed. also keine Express oder ähnliches und das ich es schon ausprobiert habe und es geht.

    mfg
    pixel


Anmelden zum Antworten