Handle löschen



  • ich hab leider wieder vergessen, muss man window handle hWnd am ende loeschen, damit meine ich

    HWND hWnd = CreateWindow(....);
    
    delete hWnd;   // das noetig bzw sollte man das
    

    und bei closehandle funktion

    HANDLE hFile = CreateFile(...);
    CloseHandle(hFile);
    hFile = NULL;  // soll das so gemacht werden oder setz CloseHandle hFile automatisch auf NULL
    

  • Mod

    DestroyWindow! Danach ist das Fenster zerstört und das Handle wird ungültig.



  • OK! und wie ist das bei closehandle, soll man den handle wieder auf null setzen.



  • das kommt drauf an:

    prinzipiell brauchst du es nicht.

    Allerdings wird CloseHandle das handle NICHT auf 0 setzen.
    Solltest du die Variable also nach CloseHandle wieder verwenden wollen,
    kann es nicht schaden das Handle manuell auf 0 zu setzen, da man so später einfach gegen 0 testen kann.



  • ich habe ein zweisprachiges menü, meine steuerelemente (in dem fall Treeview) sind beim programmstart auf deutsch.
    jetzt wollt ich fragen ob ich handle´s deaktivieren kann für eine bestimmte zeit, sodass mir bei der betätigung des "englischbuttons" ein neuer handle mit dem englischen treeview im childwindow erscheint, sobald dann "deutschbutton"wieder betätigt wird soll englischtreeview deaktiviert werden und deutsch aktiviert...das würde ich über die hauptWndproc (WM_COMMAND) steuern.
    danke



  • gibt verschiedene Ansätze...
    du könntest alle Controls doppelt erstellen (deutsch und englisch) und dann einfach die fenster verstecken/anzeigen...
    direkt handles deaktivieren geht nicht.

    Alternativ reicht aber auch 1 Steuerlement und du änderst einfach die Texte.



  • wie versteck ich ein fenster bzw. mach es dann wieder sichtbar?





  • Hmmm, für jede Sprache ein Control anlegen? Der arme Resourcen-Editor... 😮

    Ist es nicht vielleicht übersichtlicher, die Texte irgendwo als Stringtables (für jede Sprache) anzulegen? Und das Control dann mit diesem Text aus der gewählten Stringtable zu laden?

    Just my 5 cents,
    Martin



  • @Mmacher: ja, ist es 🙂


  • Mod



  • danke für die beiträge, aber wieso "der arme resourcen-editor" wenn ich zwei sprachfenster erstelle und die jeweils verstecke, geht da rechenleistung flöten oder was ist das grundsätzliche problem



  • es ist einfach nicht die effizienteste Lösung.
    Das braucht dich bei einem kleinen Projekt nicht zwangsläufig stören.

    Aber für größere Projekte sollte man sich doch über das Design Gedanken machen.
    Ausgelagerte Sprachfiles sind im Ernstfall auch recht einfach Hand zu haben
    und erfordern nicht, dass durchgängig alle Controls mehrfach im RAM rumliegen, jedes mit seiner eigenen Sprache...

    Also suchs dir aus 🙂


Log in to reply