Einstellungen speichern und laden


All das würde nun aber wenig sinnvoll sein, wenn es keine Möglichkeit gäbe, diese Änderungen zu speichern und bei jedem Start zu laden. Diese Möglichkeit heißt "TB_SAVERESTORE" und wird an die Toolbar gesendet.
Das Schöne ist, dass wir uns um nichts weiter kümmern müssen. Die Toolbar nimmt uns die ganze Arbeit ab.

So wird über den wParam der o.g. Nachricht bestimmt, ob die Einstellungen gespeichert (true) oder geladen (false) werden sollen. Der lParam ist ein Zeiger auf ein Record vom Typ TTBSaveParams, das die notwendigen Daten enthält. Weil die Informationen in der Registry gespeichert werden, ist im Record lediglich der Hauptschlüssel, der Schlüsselname (Ihrer Software, z.B.) und der Name des Wertes anzugeben. Letzterer enthält die eigentlichen Toolbardaten; d.h.: wenn Sie mehrere Toolbars verwenden, müssen Sie die Nachricht entsprechend oft senden und immer den passenden Wertenamen angeben. Da unser Beispiel nur eine Toolbar hat, brauchen wir auch nur einen Namen:

sp.hkr          := HKEY_CURRENT_USER;
sp.pszSubKey    := 'Software\Win32-API-Tutorials\Toolbar-Demo';
sp.pszValueName := 'ToolbarSettings';

Im Hinblick auf NT-Betriebssysteme und evtl. eingeschränkte Benutzerrechte empfehle ich grundsätzlich den Schlüssel HKEY_CURRENT_USER zum Speichern. Wenn Ihr Programm seine Einstellungen sowieso in der Registry ablegt, dann sollten Sie die Toolbar-Einstellungen im selben Schlüssel unterbringen.

Zum Speichern benutzen wir nun, wie gesagt!, die Nachricht "TB_SAVERESTORE" mit dem wParam true:

SendMessage(hToolbar,TB_SAVERESTORE,WPARAM(true),LPARAM(@sp));

Wollen Sie die Einstellungen laden, geben Sie stattdessen false an.