/************************************************************************ Demo9 / Teht„v„ 2 Projektiin: kysyint.cpp kysyint.rh kysyint.rc *************************************************************************/ #include #include #include "kysyint.rh" // Kokonaisluvun kysyv„ dialogi //------------------------------------------------------------------------------ class TKysyIntDialog : public TDialog { int arvo; public: TKysyIntDialog(TWindow *parent, TResId resId, TModule *module = 0) : TDialog(parent,resId,module) { } void SetupWindow() { SetDlgItemInt(KYSYINT_EDIT,arvo); } virtual ~TKysyIntDialog() { Destroy(); } void TextChanged() { arvo=GetDlgItemInt(KYSYINT_EDIT); } int IntExecute(int &i) { arvo = i; int ret=TDialog::Create(); // if ( ret != IDOK ) return ret; if ( ret == IDOK ) i = arvo; return ret; } DECLARE_RESPONSE_TABLE(TKysyIntDialog); }; int KysyInt(TWindow *wnd,int &arvo, int def = -1000) { int luku = def; if ( def == -1000 ) luku = arvo; TKysyIntDialog *dlg = new TKysyIntDialog(wnd,"KYSYINT_DIALOG"); if ( dlg->IntExecute(luku) != IDOK ) return -1; arvo = luku; return 0; } DEFINE_RESPONSE_TABLE1(TKysyIntDialog, TDialog) EV_EN_CHANGE(KYSYINT_EDIT,TextChanged), END_RESPONSE_TABLE; // P„„dialogi, joka k„sittelee hiiren oikean napin painalluksen //------------------------------------------------------------------------------ class TNappulaDialog : public TDialog { int arvo; public: TNappulaDialog(TWindow *parent, TResId resId, TModule *module = 0) : TDialog(parent,resId,module) {} virtual ~TNappulaDialog() { Destroy(); } void EvRButtonDown(uint modKeys, TPoint& point) { if ( KysyInt(this,arvo) == 0 ) { TDC dc(GetDC(*this)); char text[40]; wsprintf(text,"Luku oli %d, heksana 0x%x",arvo,arvo); dc.TextOut(10,10,text); } } DECLARE_RESPONSE_TABLE(TNappulaDialog); }; DEFINE_RESPONSE_TABLE1(TNappulaDialog, TDialog) EV_WM_RBUTTONDOWN, END_RESPONSE_TABLE; // NappulaApp - application olio //------------------------------------------------------------------------------ class TNappulaApp : public TApplication { public: TNappulaApp(const char *title) : TApplication(title) {} void InitMainWindow() { TDecoratedFrame *fw = new TDecoratedFrame(0,Name, new TNappulaDialog(0,"PAA_DIALOG")); fw ->SetFlag(wfShrinkToClient); SetMainWindow(fw); } }; /********************* Pääohjelma *********************************************/ int OwlMain(int ,char far * []) { return TNappulaApp("Nappulaohjelma").Run(); }