Erweiterung der Anwendungsklasse

Einführung in die OWL        

Nun wollen wir in unserem Beispielprogramm als Antwort auf das Betätigen der linken oder rechte Maustaste ein Hinweisfenster (MessageBox) anzeigen, welches dem Anwender mitteilt, daß er die entsprechende Maustaste betätigt hat. Die beiden Botschaften dazu lauten WM_LBUTTONDOWN für die linke und WM_RBUTTONDOWN für die rechte Maustaste:

// Beispielprgramm
 
#include <owl/applicat.h>
#include <owl/framewin.h>
 
class CMouseWindow : public TWindow
{

public:

CMouseWindow(TWindow* parent=0);

 

protected:

void EvLButtonDown(UINT, TPoint&);

void EvRButtonDown(UINT, TPoint&);

 

DECLARE_RESPONSE_TABLE(CMouseWindow);

 
};
 
DEFINE_RESPONSE_TABLE1(CMouseWindow, TWindow)

EV_WM_LBUTTONDOWN,

EV_WM_RBUTTONDOWN,

END_RESPONSE_TABLE;
 
class CApp : public TApplication
{

public:

CApp(const char far* name = 0) : TApplication(name) {}

void InitMainWindow();

};
 
CMouseWindow::CMouseWindow(TWindow* parent)
{

Init(parent, 0, 0);

}
 
void CMouseWindow::EvLButtonDown(UINT, TPoint&)
{

MessageBox( "Sie haben die linke Maustaste gedrückt", 0, MB_OK | MB_ICONINFORMATION);

}
 
void CMouseWindow::EvRButtonDown(UINT, TPoint&)
{

MessageBox( "Sie haben die rechte Maustaste gedrückt!", 0, MB_OK | MB_ICONINFORMATION);

}
 
void CApp::InitMainWindow()
{

SetMainWindow( new TFrameWindow(0, "Botschaftsbehandlung", new CMouseWindow));

}
 
int OwlMain(int argc, char *argv[])
{

return CApp("PROJ004").Run();

}

Lassen wir dieses Beispiel nun einfach einmal ausführen und betätigen dann die linke Maustaste. Als Antwort erhalten wir folgendes Dialogfenster:

Ausgabe des Beispielprogramms.

Downloaden der Dateien für das Beispielprogramm (19 KB).

Um dieses Hinweisfenster auf den Bildschirm zu zaubern, bedarf es keiner großer Mühe. Die MessageBox-Funktion der Klasse TWindow erfüllt diese Aufgabe:

MessageBox( "Sie haben die linke Maustaste gedrückt", 0, MB_OK | MB_ICONINFORMATION);

Einführung in die OWL    

Stand: 16.12.98 21:31:45
© 1998 by Hans Joachim Kiefer, hajokiefer@handshake.de