Fehler beim Aufruf eines Dialogs



  • Ihr macht euch echt die einfachsten Sachen total schwer. mosta kannst du denn nicht mal selbst analysieren wo der Fehler genau liegt. Oder lad das komplette Teil hoch für uns.



  • Alle deine breaks sind unsinnig. Und bist du jetzt flenders' Rat gefolgt und hast ganz am Ende "return FALSE;" geschrieben?



  • hier ist die WndProc komplett aber hier kann ja nicht der Fehler liegen, weil der Rest Fehlerfrei läuft nur halt die Funktion NeueGruppe nicht die Funktion NeueGruppe ist unten nochmal und ich hab return FALSE schon längst ausprobiert stellt mich doch nicht immer als blöd da.

    könnt ihr den Timer dann auch mal ankucken weil der nicht geupdated wird also die Ausgabe(CPULast)ist konstand 0.
    [cpp]
    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch(message)
    {
    case WM_CREATE:
    {
    ...
    SetTimer(hwnd,MY_TIMER,500,0);

    SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int),
    (LPARAM)statwidths);
    }break;

    case WM_TIMER:
    {
    double Last = CPUAuslastung();
    //funktion zur ermittlung der CPU Auslastung
    TCHAR szBuf[256];
    wsprintf(szBuf,TEXT("CPU-Auslastung: %i %%"),(int)Last);

    HWND hStatus = GetDlgItem(hwnd,IDC_MAIN_STATUS);

    SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)szBuf);
    }break;

    case WM_SIZE:
    {
    ...
    }break;

    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case ID_EINGABE:
    {
    DialogBox((HINSTANCE)GetModuleHandle(NULL),
    MAKEINTRESOURCE(IDD_EINGABE), hwnd, Eingabe);
    return 0;
    }break;

    case ID_OEFFNEN:
    {Oeffnen(hwnd,message,wParam,lParam);
    }break;

    case ID_SPEICHERN:
    {Speichern(hwnd,message,wParam,lParam);
    return 0;
    }break;

    case ID_DRUCKEN:
    {Drucken(hwnd,message,wParam,lParam);
    return 0;
    }break;
    case ID_AUSGABE:
    CreateAusgabe(g_hMDIClient);
    return 0;
    **
    case** ID_NEUE_GRUPPE:
    {
    DialogBox(hInst,MAKEINTRESOURCE(IDD_NEUE_GRUPPE), hwnd,
    NeueGruppe);
    return 0;
    }break;

    case ID_BEARBEITEN:
    {
    }break;
    case ID_SPEICHERN_UNTER:
    {
    }break;
    case ID_SUCHEN:
    {
    }break;
    case ID_HERUNTERFAHREN:
    {
    ExitWindowsEx(EWX_SHUTDOWN,0);
    }break;
    case ID_NEUSTARTEN:
    {
    ExitWindowsEx(EWX_REBOOT,0);
    }break;
    case ID_HA:
    {
    ExitWindowsEx(EWX_POWEROFF,0);
    }break;
    case ID_ABMELDEN:
    {
    ExitWindowsEx(EWX_LOGOFF,0);
    }break;
    case ID_MUSIK:
    {
    ShellExecute (hwnd,"open","K2K_MP.exe",NULL,NULL,SW_SHOWNORMAL );
    return 0;
    }break;

    case ID_HILFE:
    {
    ShellExecute(hwnd,"open","HILFE/index.html",NULL,NULL,SW_SHOWNORMAL );
    return 0;
    }break;
    case ID_SERVICE:
    {
    DialogBox((HINSTANCE)GetModuleHandle(0),
    MAKEINTRESOURCE(IDD_SERVICE), hwnd, EMail);
    return 0;
    }break;
    case ID_UEBER:
    {
    int ret = DialogBox(GetModuleHandle(NULL),
    MAKEINTRESOURCE(IDD_UEBER), hwnd, Ueber);
    if(ret == -1)
    MessageBox(hwnd,"Dialog Fenster konnte nicht aufgerufenwerden!",
    "Fehler",MB_OK | MB_ICONERROR);
    return 0;
    }break;

    case ID_BEENDEN:
    {
    PostMessage(hwnd, WM_CLOSE, 0, 0);
    }break;
    }
    case WM_CLOSE:
    KillTimer(hwnd, MY_TIMER);
    DestroyWindow(hwnd);
    return 0;
    default:
    return DefWindowProc(hwnd, message, wParam, lParam);
    }
    return true;
    }[/cpp]

    hier wieder die Funktion Neue Gruppe

    //**************************************************************************
    //  NeueGruppe *************************************************************
    //**************************************************************************
    BOOL CALLBACK NeueGruppe(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
    {
       switch(Message)
       {
        case WM_INITDIALOG:
          {
          return true;
          }     
        case WM_COMMAND:
          {     
          switch(LOWORD(wParam))
             {   
             case IDC_WEITERE_EINGABEN: 
               {
               ...
               }break;
    
                case IDC_ENTFERNEN:
              {
                  ... 
              }break;
    
                case IDC_ZURUECK:
                   PostMessage(hwnd, WM_CLOSE, 0, 0); 
    
             }
    
          }break;
    
        case WM_CLOSE:
          EndDialog(hwnd, 0);
          return true;
    
       }
       return false;
    }
    

    [ Dieser Beitrag wurde am 16.02.2003 um 15:04 Uhr von mosta editiert. ]



  • In WndProc solltest du, wenn du eine Message bearbeitet hast return(0); aufrufen, du rufst return true; auf!
    Nach dem Bearbeiten von WM_COMMAND NeueGruppe rufst du return false; auf, da sollte aber return true; aufgerufen werden!
    Versuch mal bei SetTimer als vierten Parameter NULL anstelle von 0 🙄



  • alles nutzt nichts 😞 😞 😞



  • Geht denn die Eingabe-DialogBox?



  • ja

    hab es so versucht wie bei Eingabe trotzdem beendet er das Prog.

    case ID_NEUE_GRUPPE:
      {
      DialogBox((HINSTANCE)GetModuleHandle(NULL), 
      MAKEINTRESOURCE(IDD_NEUE_GRUPPE), hwnd, NeueGruppe);
      return true; 
      }break;
    

    [ Dieser Beitrag wurde am 16.02.2003 um 17:47 Uhr von mosta editiert. ]



  • So, jetzt reichts mir aber. Schick mir einfach mal schnell die cpp-Datei rüber. Achja, natürlich auch die Resourcen-Skripte.

    [ Dieser Beitrag wurde am 16.02.2003 um 18:55 Uhr von WebFritzi editiert. ]



  • mosta... flenders hat doch gesagt, du sollst return 0; aufrufen, nicht return true;!

    cya 🙂



  • webfritzi hast du denn Fehler gefunden


Anmelden zum Antworten