OWL Menüs |
Unter OWL basiert das "Enablen" und das "Checken" auf dem Command-Enabler. Es wird eine Variable gehalten, die den Zustand repräsentiert. Durch Anklicken des Menüpunkts wird der Inhalt der Variablen (hier FolgeTauschen) gewechselt.
Das Setzen des Hakens erfolgt am einfachsten in der Enable-Funktion. Die übergebene Enable-Variable kann mit der Methode SetCheck bearbeitet werden. Die Enable-Funktion (hier CeOption) wird jedesmal aufgerufen, wenn das Menü aufgeklappt wird.
DEFINE_RESPONSE_TABLE1(tHauptFenster, TWindow) ... EV_COMMAND(OPTION, Option), EV_COMMAND_ENABLE(OPTION, CeOption), ... END_RESPONSE_TABLE; void tHauptFenster::Option() // Antwort auf Klicken { FolgeTauschen = !FolgeTauschen; } void tHauptFenster::CeOption(TCommandEnabler &ce) // Pruefung auf Enabled { ce.SetCheck(FolgeTauschen?TRUE:FALSE); }FolgeTauschen ist eine boolesche Variable, deren Wert durch das Anklicken verändert wird.
// In der Fensterklasse... virtual LRESULT EvCommand(unsigned int id, HWND hWndCtl, unsigned int notify); void EvCommandEnable(TCommandEnabler& e) {e.Enable(1);} // ... LRESULT tMainWindow::EvCommand(unsigned int id, HWND, unsigned int) { if (id==M_ENDE) { PostMessage(WM_QUIT); } else { switch(id) { // klassische Ereignisbehandlung case M_FILEOPEN: break; // ... default: } } }
Homepage - OWL-Index | 22.9.2001 (C) Copyright 1999, 2001 Arnold Willemer |