// w32dlib - Win32 Control Helpers // // Copyright (C) 2005 Ian Cowburn (ianc@noddybox.demon.co.uk) // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // ------------------------------------------------------------------------- // #include #include #include #include "dialog.h" class Test : public W32DLib::Dialog { public: Test() : m_static(this,IDSTATIC1), m_text(this,IDTEXT), m_check(this,IDCHECK), m_button(this,IDBUTTON), m_quit(this,IDQUIT) { AddControl(&m_text); AddControl(&m_check); AddControl(&m_button); AddControl(&m_quit); m_button.OnPress (this,static_cast(&Test::OnButton)); m_quit.OnPress (this,static_cast(&Test::OnQuit)); m_check.OnPress (this,static_cast(&Test::OnCheck)); } virtual ~Test() { } int ResourceID() { return TESTDLG; } virtual void OnInit() { std::cout << "OnInit()" << std::endl; m_text.SetText("Hello"); m_check.SetState(W32DLib::AutoCheck::eIndeterminate); m_quit.Enable(true); } private: W32DLib::StaticText m_static; W32DLib::Text m_text; W32DLib::AutoCheck m_check; W32DLib::Button m_button; W32DLib::Button m_quit; BOOL OnQuit(UINT msg, WPARAM wp, LPARAM lp) { std::cout << "Called OnQuit()" << std::endl; Dialog::Close(IDOK); return TRUE; } BOOL OnButton(UINT msg, WPARAM wp, LPARAM lp) { std::string txt=m_text.GetText(512); std::cout << "Called OnButton()" << std::endl; std::cout << "text=" << txt << std::endl; std::cout << "check=" << m_check.GetState() << std::endl; m_static.SetText(txt.c_str()); SetTitle((txt+" [Title]").c_str()); return TRUE; } BOOL OnCheck(UINT msg, WPARAM wp, LPARAM lp) { W32DLib::AutoCheck::EState state=m_check.GetState(); std::cout << "Called OnCheck() - state " << state << std::endl; m_quit.Enable(state==W32DLib::AutoCheck::eChecked); return TRUE; } }; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { Test t; INT_PTR i; i=t.ShowModal(hInstance,NULL); if (i==IDOK) { std::cout << "res=IDOK" << std::endl; } else { std::cout << "res=" << i << std::endl; } return 0; }