Newbee frage zu win32 app
- 
					
					
					
					
 Hi 
 Grad hab ich mir ne win32 anwendung geschrieben.
 Die lies sich mit vc++ auch ganz toll compilieren, nur, wenn ich sie ausführe so endet sie sofort!
 Die Anwendung ist ein POPUP-Fenster ohne menü und buttons. Auch die messages lass ich DefWindowProc() behandeln.
 Also mein Problem...:
 Wie krieg ichs hin das das Fenster geöffnet bleibt??   
 wenn jemand einen kleinen Tipp hat...
 
- 
					
					
					
					
 du bist hier wohl im falschen forum! trotzdem: hast du auch eine nachrichten schleife eingerichtet? 
 
- 
					
					
					
					
 falsches Forum? ..... naja! 
 ja hab ich schon eingebaut, also die Nachrichten-Schleife.
 Ich prüfe die PeekMessage-Methode auf wahr oder falsch um dann Translate und DispatchMessage auszuführen.
 Sollte ich diese Schleife, also if(peekmessage...) in die WinMain() reinschreiben? Denn da steht sie gerade...
 
- 
					
					
					
					
 poste mal den ganzen kode! 
 
- 
					
					
					
					
 hmm, hmm, wenn du meinst... #define WIN32_LEAN_AND_MEAN 
 #include <windows.h>
 #include "prototypen.h"
 #include "e:\Entwicklung\files\resource.h"int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
 {
 // erstmal unser Fenster deklarieren:WNDCLASSEX fuck_fenster; 
 MSG fuck_fenster_msg;
 HWND fuck_fenster_hwnd;
 HBITMAP hBitmap;fuck_fenster.cbClsExtra = 0; 
 fuck_fenster.cbSize = sizeof(WNDCLASSEX);
 fuck_fenster.cbWndExtra = 0;
 fuck_fenster.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
 fuck_fenster.hCursor = LoadCursor(NULL, IDC_ARROW);
 fuck_fenster.hIcon = LoadIcon(NULL, IDI_WINLOGO);
 fuck_fenster.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
 fuck_fenster.hInstance = hInstance;
 fuck_fenster.lpfnWndProc = MsgHandler;
 fuck_fenster.lpszClassName = "Fuck Fenster";
 fuck_fenster.lpszMenuName = NULL;
 fuck_fenster.style = CS_VREDRAW | CS_HREDRAW | WNDC | CS_DBLCLKS;RegisterClassEx(&fuck_fenster); fuck_fenster_hwnd = CreateWindowEx(NULL, "Fuck Fenster", "Aktives Fenster", 
 WS_POPUP | WS_VISIBLE, 100, 100, 620, 480, NULL, NULL, hInstance, NULL);// und checken ob das gut ging und dann zeigen!! if(fuck_fenster_hwnd == 0) 
 {
 MessageBox(fuck_fenster_hwnd, "Fenster erstellen hat nicht geklappt!",
 "Fehler", MB_ICONEXCLAMATION | MB_OK);
 }
 if((PeekMessage(&fuck_fenster_msg, fuck_fenster_hwnd, 0, 0, PM_REMOVE)))
 {
 TranslateMessage(&fuck_fenster_msg);
 DispatchMessage(&fuck_fenster_msg);
 }else
 {
 MessageBox(fuck_fenster_hwnd, "Kann keine Messages lesen!",
 "Fehler", MB_ICONEXCLAMATION | MB_OK);
 }hBitmap = (HBITMAP)LoadImage(NULL, SLIMY.bmp, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); 
 ShowWindow(fuck_fenster_hwnd, nCmdShow);
 UpdateWindow(fuck_fenster_hwnd);
 //ZeigeFenster(fuck_fenster_hwnd, fuck_fenster_msg);return(fuck_fenster_msg.wParam); //Rückgabe an das System 
 }// Ende WinMain!// Anfang MsgHandler 
 LRESULT CALLBACK MsgHandler(HWND fuck_fenster_hwnd, UINT fuck_fenster_msg,
 WPARAM wParam, LPARAM lParam)
 {
 if(fuck_fenster_msg == WM_CLOSE)
 {
 DestroyWindow(fuck_fenster_hwnd);
 return(0);
 }
 if(fuck_fenster_msg == WM_DESTROY)
 PostQuitMessage(0);
 if(fuck_fenster_msg == WM_PAINT)
 {HDC hdc; 
 PAINTSTRUCT ps;
 int pixel = 1;
 hdc = BeginPaint(fuck_fenster_hwnd, &ps);
 RECT textrect = {100, 100, 500, 500};SetTextColor(hdc, RGB(255,0,0)); 
 SetBkColor(hdc, RGB(0,0,0));
 SetBkMode(hdc, TRANSPARENT);
 TextOut(hdc, 50, 50, "Ist das eine schoene Welt!", 26);DrawText(hdc, "man ist das ein geiler Text!!!", 29, &textrect, DT_CENTER); HDC pixel_hdc = GetDC(fuck_fenster_hwnd); 
 if(!(SetPixelV(pixel_hdc, 100, 300, RGB(255,0,0))))
 pixel = 0;
 ReleaseDC(fuck_fenster_hwnd, pixel_hdc);
 if(pixel == 0)
 {
 MessageBox(fuck_fenster_hwnd, "Ich konnte keinen Pixel malen!",
 "Fehler!", MB_ICONEXCLAMATION | MB_OK);
 }else
 MessageBox(fuck_fenster_hwnd, "Ich konnte Pixel malen!",
 "Info!", MB_ICONEXCLAMATION | MB_OK);
 EndPaint(fuck_fenster_hwnd, &ps);
 return(0);
 }return(DefWindowProc(fuck_fenster_hwnd, fuck_fenster_msg, wParam, lParam)); 
 }// Ende MsgHandler....soweit! 
 uwerfend ist das nicht und geht wohl auch ein bisschen durcheinander.
 
- 
					
					
					
					
 Sollte die Nachrichtenschleifge für ein fenster nicht besser so aussehen: MSG msg; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } } return msg.wParam;
 
- 
					
					
					
					
 *LOL* fuck_fenster  
 Nimm das nächste mal Code-Tags.
 
- 
					
					
					
					
 die winmain hat überhaupt keine schleife, da kann das prog auch net lang leben  
 
- 
					
					
					
					
 Was für eine Schleife meinst du? 
 Also das soll wahrscheinlich eine do...while(true) - Schleife sein, aber
 was schreibe ich in die rein?
 Die Msgs-Behandlungen oder sowas wie UpdateWindow()?
 
- 
					
					
					
					
 @ultraschatten: Wenn ich du wäre, würd ich mir zuerst ein paar Tutorials reinziehen, die tun gut :): http://www.germandevnet.de ist z.B. eins (unter Knowledgebase). cu 
 
- 
					
					
					
					
 würd dir auch mal raten paar tut's über winapi durchzuackern... 
 luckie hat btw. ne typische hauptschleife schon gepostet
 
- 
					
					
					
					
 Am besten Fuck durch Geil ersetzen. Dann ist Windows auch motivierter deinen Code auszuführen 
 
- 
					
					
					
					
 *lol*    cya 
 
- 
					
					
					
					
 Joooooo, 
 hab mal mit dem Tut von Magic Creator angefangen, also von dem link, und muss sagen das ist nicht schlecht ! !
 Löst doch so einige offene Stellen in meinem Code... 
 thx auf alle Fälle!!!
 
- 
					
					
					
					
 Ja, mit dem Tutorial hab ich auch angefangen, ist recht gut zum Einsteigen. Jetzt hab ich aber den getreuen Petzold neben mir liegen :)! cu