Fehler in Make Window



  • Hi,

    die Funktion MakeWindow() gibt immer ein Fehler zurück:

    bool MakeWindow(int iWidth, int iHeight)
    {
      // our window class
      WNDCLASS wndWc;
    
      wndWc.style = CS_OWNDC;
      wndWc.lpfnWndProc = (WNDPROC) DialogProc;
      wndWc.cbClsExtra = 0;
      wndWc.cbWndExtra = 0;
      wndWc.hInstance = GetModuleHandle(NULL);
      wndWc.hIcon = NULL;
      wndWc.hCursor = LoadCursor(0, IDC_ARROW);
      wndWc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
      wndWc.lpszMenuName = NULL;
      wndWc.lpszClassName = "w32skin";
    
      if (!RegisterClass(&wndWc)) {
          cout <<"error reg" << endl;
          return false;
      }
    
      hWnd = CreateWindow("w32skin", "       w32skin",
                          WS_OVERLAPPEDWINDOW,
                          100,100, iWidth,iHeight,
                          NULL, NULL, GetModuleHandle(NULL), NULL);
      return (hWnd?true:false);
    
    }
    

    Weiß jemand warum?



  • DieFrage schrieb:

    return (hWnd?true:false);

    Gib hier einfach return hWnd ein. Wenn CreateWindow erfolgreich war, hat hWnd ein gültiges Handle (>0), sonst ist Hwnd=0, also false. Ansonsten kenne ich mich mit MakeWindow nicht aus, da ich diese Funktion nicht einsetze.



  • deine DialogProc ist fehlerhaft.



  • Ich bekomme weiterhin ein -1 zurück.



  • Ach ja,
    hWnd hat die ganze Zeit nur den Wert 0.



  • wndWc.hCursor = LoadCursor(0, MAKEINTRESOURCE(IDC_ARROW));

    sei froh, dass du überhaupt eine Antwort bekommst.



  • Naja,
    das Problem besteht weiterhin.



  • ascda schrieb:

    deine DialogProc ist fehlerhaft.



  • DieFrag schrieb:

    Naja,
    das Problem besteht weiterhin.

    Obwohl ich keinen Bock darauf habe jemanden zu antworten, der noch nicht einmal in der Lage ist einen Fehler, den er erhält anzugeben,

    hier, das hier läuft fehlerlos.

    #include <windows.h>
    #include <iostream>
    
    HRESULT WINAPI DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
    
    bool MakeWindow(int iWidth, int iHeight)
    {
      // our window class
      WNDCLASS wndWc;
      HWND hWnd;
    
      wndWc.style = CS_OWNDC;
      wndWc.lpfnWndProc = (WNDPROC) DialogProc;
      wndWc.cbClsExtra = 0;
      wndWc.cbWndExtra = 0;
      wndWc.hInstance = GetModuleHandle(NULL);
      wndWc.hIcon = NULL;
      wndWc.hCursor = LoadCursor(0, MAKEINTRESOURCE(IDC_ARROW));
      wndWc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
      wndWc.lpszMenuName = NULL;
      wndWc.lpszClassName = "w32skin";
    
      if (!RegisterClass(&wndWc)) {
    	  std::cout <<"error reg" << std::endl;
          return false;
      }
    
      hWnd = CreateWindow("w32skin", "       w32skin",
                          WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                          100,100, iWidth,iHeight,
                          NULL, NULL, GetModuleHandle(NULL), NULL);
      return (hWnd?true:false);
    
    }
    

    tschau, auf nimmer wiedersehen.



  • Ganz süß wieder diese infantile Polemik.

    Obwohl ich keinen Bock darauf habe jemanden zu antworten, der noch nicht einmal in der Lage ist einen Fehler, den er erhält anzugeben,

    Hiermit möchte ich zum ausdrück bringen, ich habe keine lust mit jemanden zu schreiben der des lesens nicht mächtig ist und dessen stilmittel überheblichkeit und affekthascherei sind.

    Um auf auf gut deutsch zu sagen:
    Wenn du ein auf Obermakker machst, solltest du schauen wie lang dein Schwanz wirklich ist. Hör auf mich zu nerven mit deinen sinnfreien aussagen. Bei paar tausend regestrierten leuten brauch ich kein kleinen jungen der sich aufblassen muss.

    Die gesagt, neben der erkenntnis, dass hWnd den wert 0 enthält, bekomme ich keine compilerfehler.



  • ascda schrieb:

    ascda schrieb:

    deine DialogProc ist fehlerhaft.



  • Das wars. Danke 🙂


Anmelden zum Antworten