Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.01.2004, 20:02

Formular/Dialoge in VC++ 6 ohne MFC?!

hy!

ich hab kurz ne frage an euch...

wenn ich mit dem MFC-Assistenten ne Anwednung erstell, kann ich ja im Formular/Dialog-Editor meine Buttons usw. platzieren, Membervariablen zurodnen und mit denen dann in meinem Code arbeiten.

Weil ich die MFC aber nicht sonderlich mag und alles mit der WinAPI alleine zu machen ziemlich aufwändig ist, wollt ich fragen, ob ich den Formular/Dialogeditor nicht auch irgendwie ohne die MFC verwenden kann?

Habs bisher nicht geschafft, die ins Projekt eingefügten Dialoge irgendwie über meinen Code ansprechen zu können bzw. sie dazu zu kriegen am Anfang des Programms zu starten...

wär echt super wenn mir einer helfen könnte, gern auch mit links zu tutorials oder so...


ciao

2

31.01.2004, 20:24

Die Assistenten der MFC kannst du nicht verwenden wenn du kein MFC Projekt hast. Jedenfalls nicht das ich wüste. Aber deine Resource (z.B. eine DialogBox oder ein Icon) kannst du weiterhin erstellen. Nur must du Manuell dieses Resourcen ansprechen. Du kannst ihnen keine Variablen oder Klassen zuordnen wie man es unter MFC machen kann.

Jede Resource hat aber eine ID. Über diese kannst du sie ansprechen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

3

31.01.2004, 20:29

das was du da sagst triffts ziemlich genau ;)

habs bisher immer manuell über einfügen->Ressource eingefügt, hatte das teil dann auch im projekt-browser stehn, aber ich wusste nie wie ich denn jetzt meine dialog box, textfeld, button oder was auch immer ansprech ;)

hat irgendjemand ne seite wo mir das erklärt wird oder könnt einer von euch das für mich tun?
ich hab auch schoinmal danach gegooglet, aber bin nicht so wirklich fündig geworden...


danke und ciao

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

4

31.01.2004, 22:31

hier nochmal ein kurzes Code snipsel:
Dialog ist mit der ID: IDD_DIALOG_ID definiert und gesetzt wurden.

nun zuerst unsere Message-Funktion:

Quellcode

1
    INT_PTR CALLBACK LCDialogProc(HWND hDlg, unsigned int uiMsg, WPARAM WParam, LPARAM LParam);


dann der eigentliche Teil:

Quellcode

1
2
3
4
5
    int Result;
    Result = (int)(DialogBox(hInstance,
                              MAKEINTRESOURCE(IDD_DIALOG_ID),
                              NULL,
                              LCDialogProc));


mit

Quellcode

1
GetLastError()
kannst du evtle Fehler beim erstellen des Dialoges finden. Nach DialogBox(...) aufrufen!

dann musst du noch die MessageFunktion definieren:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INT_PTR CALLBACK LCDialogProc(HWND hDlg, unsigned int uiMsg, WPARAM WParam, LPARAM LParam)  {
    switch(uiMsg)  {
    case WM_INITDIALOG:
        /*...*/
    case WM_CLOSE:
        EndDialog(hDlg, 1);
    break;
    case WM_COMMAND:
        /*...*/
    break;
    default:
        return false;
    };
    return true;
}


und wohla -- da ist unser Dialog ohne MFC :)

die 1 bei EndDialog gibt an, was DialogBox zurückliefert. Das kann man definieren. Z.B. 1 == Dialog beendet, 2 == Dialog abgebrochen .....

hier ist ne Seite: http://www.win-api.de/ die das eigentlich ganz gut erklärt... ich weis aber nicht ob da auch Dialoge dabei sind ;)[/url]

5

01.02.2004, 23:41

danke für die mühe :)

hab mich in der zwischenzeit nochmal mit der MFC beschäftigt und dabei ist mir auch ne frage gekommen, hab ich in nem andern thread gepostet ;)

Werbeanzeige