home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
WINDOWS
/
PROGRAM
/
OWLBWCC.ZIP
/
BDDVTBTN.CPP
next >
Wrap
C/C++ Source or Header
|
1992-01-26
|
5KB
|
128 lines
/**********************************************************************/
/* BDDVTBTN.cpp by Bob Bourbonnais */
/* released to the public domain 1/26/92 */
/* This program shows how to switch to different */
/* routines based on the button pressed using */
/* Dynamic Dispatched Virtual Tables, DDVT */
/**********************************************************************/
#include <owl.h>
#include <dialog.h>
#include "bwcc.h" // needed for BWCC
class TMyDialog : public TDialog
{
public:
TMyDialog(LPSTR lpDialogName) // constructor calls
: TDialog(NULL,lpDialogName) // base class constructor
{
BWCCGetVersion(); // activate Borland Windows Custom Controls
}
virtual void Ok(RTMessage Msg); // redefines the DDVT function
// for the OK button #1
// as defined in Base class
// TDialog
virtual void Cancel(RTMessage Msg); // redefines the DDVT for the
// cancel button in TDialog
// The following Dynamic Dispatch Virtual Functions are linked
// to their associated subroutines
virtual void HandleAbort(RTMessage Msg)
= [ID_FIRST + IDABORT]; // IDABORT is Button 3
virtual void HandleRetry(RTMessage Msg)
= [ID_FIRST + IDRETRY]; // IDRETRY is Button 4
virtual void HandleIgnore(RTMessage Msg)
= [ID_FIRST + IDIGNORE]; // IDIGNORE is Button 5
virtual void HandleYes(RTMessage Msg)
= [ID_FIRST + IDYES]; // IDYES is Button 6
virtual void HandleNo(RTMessage Msg)
= [ID_FIRST + IDNO]; // IDNO is Button 7
virtual void HandleButton8(RTMessage Msg)
= [ID_FIRST + 8]; // Button #8
virtual void DefChildProc(RTMessage Msg); // Default handler for
// Buttons not covered
// by DDVT
};
void TMyDialog::Ok(RTMessage Msg) // Redefines button handler inherited
{ // from TDailog for Button #1 IDOK
BWCCMessageBox(HWindow,"It will now call the IDOK in TDialog that will close this Dialog",
"Button #1 was pressed",MB_OK);
TDialog::Ok(Msg);
}
void TMyDialog::Cancel(RTMessage Msg) // Redefines button handler inherited
{ // from TDailog for Button #2 IDCANCEL
BWCCMessageBox(HWindow,"It will now call the IDCANCEL in the base classTDialog",
"Button #2 was pressed",MB_OK);
TDialog::Cancel(Msg);
}
void TMyDialog::HandleAbort(RTMessage)
{
BWCCMessageBox(HWindow,"The Abort Button was pressed",
"Button #3 was pressed",MB_OK);
}
void TMyDialog::HandleRetry(RTMessage)
{
BWCCMessageBox(HWindow,"The Retry button was pressed",
"Button #4 was pressed",MB_OK);
}
void TMyDialog::HandleIgnore(RTMessage)
{
BWCCMessageBox(HWindow,"The Ignore button was pressed",
"Button #5 was pressed",MB_OK);
}
void TMyDialog::HandleYes(RTMessage)
{
BWCCMessageBox(HWindow,"The Yes button was pressed",
"Button #6 was pressed",MB_OK);
}
void TMyDialog::HandleNo(RTMessage)
{
BWCCMessageBox(HWindow,"The No Button was pressed",
"Button #7 was pressed",MB_OK);
}
void TMyDialog::HandleButton8(RTMessage)
{
BWCCMessageBox(HWindow,"The Button labled Button was pressed",
"Button #8 was pressed",MB_OK);
}
void TMyDialog::DefChildProc(RTMessage Msg)
{
MessageBeep(0);
BWCCMessageBox(HWindow,"Not Implemented","Feature",MB_OK);
MessageBeep(0);
TDialog::DefChildProc(Msg);
}
class TDialog1App : public TApplication // Application Class to contain
{ // the application
public:
TDialog1App(LPSTR lpName, HANDLE hInstance, // constructor calls the
HANDLE hPrevInstance, // base class constructor
LPSTR lpCmdLine, int nCmdShow)
:TApplication(lpName, hInstance,
hPrevInstance,
lpCmdLine, nCmdShow) {};
virtual void InitMainWindow(); // overrides base class InitMainWindow
};
void TDialog1App::InitMainWindow() // to initialize a dialog box
{ // as the main window
MainWindow = new TMyDialog("MAINWINDOWDIALOG");
}
int PASCAL WinMain(HANDLE hInstance, // main entry point from
HANDLE hPrevInstance, // windows to this program
LPSTR lpCmdLine , int nCmdShow)
{
TDialog1App Dialog1("Dialog Tester",hInstance, // create instance of
hPrevInstance, // the dialog application
lpCmdLine,nCmdShow);
Dialog1.Run(); // run it
return (Dialog1.Status); // exit
}
/**********************************************************************/