C++ WINAPI-Problem

C++ WINAPI-Problem

Beitragvon Gast » 2. Jul 2010, 20:18

Hallo Leute, ich habe mal versucht ein kleines WINAPI-Programm objektorientiert um zu setzen.

Code: Alles auswählen
// .h

class CCALLBACK   :   public CCALLBACKQUIT, public CCALLBACKCREATE
{
public:
   LRESULT m_LRRender(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
};

class CMAINCLASS   :   public CCALLBACK
{
private:
    HWND   hWnd;
    MSG      msg;
    WNDCLASS   wc;
public:
   CMAINCLASS(void);
   BOOL m_bCreate(int iCmdShow);
   int m_iMsgLoop(void);
};

// .cpp

HINSTANCE   g_hInst;
CMAINCLASS* CMainC;


MAIN_BEGIN                 // #define MAIN_BEGIN   int WINAPI WinMain(...){

   g_hInst   = hInstance;
   CMainC   = new CMAINCLASS();

   if(!CMainC->m_bCreate(iCmdShow))
                       {MessageBox(NULL, "Fehler", "Fehler", MB_OK);   return 1;}

   int iBack = CMainC->m_iMsgLoop();

   delete CMainC;
   return iBack;

MAIN_GET                   // #define MAIN_GET   }LRESULT CALLBACK WndProc(...){

   return CMainC->m_LRRender(hWnd, message, wParam, lParam);

MAIN_END                   // #define MAIN_END   }


Dies kann ich auch ohne Probleme compilieren.
Allerdings blinkt das erstellte Fenster nur einmal kurz auf und dann beendet sich das Programm
durch auffangen von WM_DESTROY, obwohl ich diese MSG nirgends losschick.

Hat jemand eine Idee woran das liegen könnte?

Schonmal danke
mfg c_r_89
Gast
 

Re: C++ WINAPI-Problem

Beitragvon Gast » 3. Jul 2010, 10:34

äh... leider blick ich bei deinem code nicht durch >_>

kannst den mal in normaler c++ schreiben?

vielleicht hast beim abfangen der nachricht, das break vergessen, so das er es zeichnet, dann aber auch gleich in den DESTROY zweig geht, und somit es automatisch beendet.

mfg
Gast
 

Re:Re: C++ WINAPI-Problem

Beitragvon Gast » 3. Jul 2010, 13:16

Jo danke funktioniert.. Genau daran hat es gelegen :?

Und was meinst du mit "normaler c++"?

Hab mir einfach einen kleinen Header für Schreibfaule geschrieben: :mrgreen:

Code: Alles auswählen
// WinMain.h

#pragma once

#include <windows.h>

#define MAIN_BEGIN      int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iCmdShow){
#define MAIN_GET        }LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
#define MAIN_END        }
Gast
 

Re: Re:Re: C++ WINAPI-Problem

Beitragvon Gast » 3. Jul 2010, 19:59

c_r_89 hat geschrieben:Jo danke funktioniert.. Genau daran hat es gelegen :?

Und was meinst du mit "normaler c++"?

Hab mir einfach einen kleinen Header für Schreibfaule geschrieben: :mrgreen:

Code: Alles auswählen
// WinMain.h

#pragma once

#include <windows.h>

#define MAIN_BEGIN      int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iCmdShow){
#define MAIN_GET        }LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
#define MAIN_END        }


kein problem ;)

mit normalen c++ meinte ich, den ganzen code, und nicht nur ein paar schnipsel, wie oben gepostet^^
Gast
 

Re: Re: Re: Re:...

Beitragvon Gast » 11. Jul 2010, 13:34

Ja ok das stimmt. Wäre allerdings etwas viel gewesen und dachte es wäre ein allgemeines Problem und nicht so ein doofer Fehler. :?
Gast
 


Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron