DeleteObject wann?



  • hallo alle zusammen. ich verspüre gerade ein wenig unsicherheit im umgang mit den resourcen, wann ich sie freigeben muss und wann nicht.

    Beispiel:

    /*Start
    HFONT hFont = CreateFont(...);
    SendMessage(hWnd, WM_SETFONT), (WPARAM)hFont, NULL);
    /*Ende

    a) Darf ich bereits jetzt schon DeleteObject(hFont) aufrufen?
    b) Muss ich DeleteObject(hFont) aufrufen bevor ich das nächste mal den Font Typen wechsel?
    c) Verwaltet Windows nach SendMessage selber das Font Objekt und löscht das alte automatisch wenn ich ein neues reinlade?

    Selbige Frage stellt sich mir auch, wenn ich SetWindowText aufrufe. Genügt es wenn ich einen String übergebe, der nur innerhalb der Funktion gültig ist in der ich SetWindowText aufrufe, oder muss ich einen String übergeben, den ich selbst allokiert habe?

    Hoffe ihr könnt mir Klarheit bringen, gibts ne Faustregel oder irgendwo was zum nachlesen 😉 ?

    Grüße ted


  • Mod

    a.) Nein und das steht in derMSDN. Schon mal WM_SETFONT Doku gelesen.
    b.) Eher danach
    c.) Nein steht in der MSDN

    The best time for the owner of a dialog box control to set the font of the control is when it receives the WM_INITDIALOG message. The application should call the DeleteObject function to delete the font when it is no longer needed; for example, after it destroys the control.


Anmelden zum Antworten