(erledigt) Suche Funktion zum Abfangen von Ereignissen, die nur einmal passieren sollen



  • Unter anderem erstelle ich in meinem Programm textboxen, die erst auf Knopfdruck erscheinen sollen. Dies soll aber nur einmalig passieren, damit ich nicht mehrere Textboxen mit gleichem Namen / verschiedenem Inhalt etc. habe.

    if (lParam == (LPARAM)h2Button)
             {
                if (HIWORD(wParam) == BN_CLICKED)
                {
                   if // wenn das folgende noch nicht geschehen ist, soll das folgende jetzt geschehen
                   textBox2 = CreateWindow(TEXT("edit"), TEXT(""),
                            WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL,
                            110, 40, 300, 20,
                            hwnd, (HMENU) 1, NULL, NULL
                            );
                }
    

    Mit welcher Funktion muss ich meine if-Abfrage versehen, damit die textbox nur einmal erstellt wird? Gibt es dafür einen Befehl? Oder muss ich einen Schalter aus einer Variablen bauen ala:
    programmstart
    a = 0
    wenn ... a = 0 dann
    {
    a = 1
    code
    }

    EDIT:

    Keks @ MisterX, der mir endlich gesagt hat wie man seine Beiträge als gelöst markiert 😃



  • HWND textBox2 = 0;
    
             [...]
    
             if (lParam == (LPARAM)h2Button)
             {
                if (HIWORD(wParam) == BN_CLICKED)
                {
                   if(!textBox2)
                   textBox2 = CreateWindow(TEXT("edit"), TEXT(""),
                            WS_VISIBLE | WS_CHILD | WS_BORDER | ES_AUTOHSCROLL,
                            110, 40, 300, 20,
                            hwnd, (HMENU) 1, NULL, NULL
                            );
                }
    


  • Tortenstück für Belli!

    Tx für die fixe und easy Antwort ! 😃

    P.S. ich weiß immer noch nicht wo ich meine Beiträge als beantwortet markiere?



  • In den ersten Beitrag gehen, bearbeiten und dann die Überschrift neu setzen mit einem Hinweis, dass es (erfolgreich) erledigt ist.


Anmelden zum Antworten