Button sperren?



  • Hallo,
    wie kann ich einen Button sperren sprich so das er grau wird und man ihn nicht mehr anklicken kann?
    MFG Thorben



  • EnableWindow 😉 .



  • Genau die Funktion habe ich gesucht danke.
    MFG Thorben



  • hallo, kann man auch das Schließen-Kreuz deaktivieren? Und wenns geht auch mit einem C++-Code?
    MFG Toddy



  • Erstel ein Fenster oder Dialog ohne Systemmenü.



  • bei der variable style der wnd-class CS_NOCLOSE



  • könnt ihr mir das anhand eines Beispiels erklären?
    Das wäre nett.
    MFG Toddy



  • Wenn du schon nicht weist was gemeint ist kannste doch wenigstens etwas rumprobieren :p



  • #include <windows.h>
    
    LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pszCmdLine, int iCmdShow)
    {
       HWND         hWnd;
       MSG          msgLoop;
       WNDCLASSEX   wndclassex = { 0 };
       TCHAR        szAppName[] = TEXT("ClassName");
    
       wndclassex.cbSize        = sizeof(wndclassex);
       wndclassex.style         = CS_HREDRAW | CS_VREDRAW | CS_NOCLOSE;
       wndclassex.lpfnWndProc   = WndProc;
       wndclassex.cbClsExtra    = 0;
       wndclassex.cbWndExtra    = 0;
       wndclassex.hInstance     = hInstance;
       wndclassex.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
       wndclassex.hCursor       = LoadCursor(NULL, IDC_ARROW);
       wndclassex.hbrBackground = static_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
       wndclassex.lpszMenuName  = NULL;
       wndclassex.lpszClassName = szAppName;
       wndclassex.hIconSm       = wndclassex.hIcon;
    
       if(!RegisterClassEx(&wndclassex))
       {
          MessageBox(NULL, TEXT("RegisterClassEx fehlgeschlagen!"),
                     szAppName, MB_ICONERROR);
          return 0;
       }
    
       hWnd = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, // erweiterter Fensterstil
                      szAppName, // Name der Fensterklasse
                      TEXT("Window-Title"), // Fenstertitel
                      WS_OVERLAPPEDWINDOW, // Fensterstil
                      CW_USEDEFAULT, // X-Position des Fensters                      
                      CW_USEDEFAULT, // Y-Position des Fensters       
                      CW_USEDEFAULT, // Fensterbreite                 
                      CW_USEDEFAULT, // Fensterhöhe                
                      NULL, // übergeordnetes Fenster
                      NULL, // Menü           
                      hInstance, // Programm-Kopiezähler (Programm-ID)            
                      NULL); // zusätzliche Parameter
    
       ShowWindow(hWnd, iCmdShow);
       UpdateWindow(hWnd);
    
       while(GetMessage(&msgLoop, NULL, 0, 0))
       {
          TranslateMessage(&msgLoop);
          DispatchMessage(&msgLoop);
       }
       return (msgLoop.wParam);
    }
    
    // Die Hauptnachrichtenschleife
    LRESULT CALLBACK WndProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam)
    {
       switch(uiMessage)
       {
          case WM_DESTROY:
             PostQuitMessage(0);
             break;
          default:
             return (DefWindowProc(hWnd, uiMessage, wParam, lParam));
       }
    
       return (0);
    }
    


  • Bei meinem Borland-Compiler geht das irgendwie gar nicht...
    MFG
    Toddy



  • ARG 😡 , was ist das denn für ne Fehlerbeschreibung, soll ich jetzt raten ?! 👎

    Falls STRICT definiert ist, nimmt er dass mit den Datentypen ziemlich genau, dass wär eine Möglichkeit 🙄 .

    Also bei mir funktioniert das einwandfrei (MS VC++).



  • Kann man diesen Code einfach eingeben und kompilieren lassen oer muss man was verändern???
    MFG
    Toddy


Anmelden zum Antworten