home *** CD-ROM | disk | FTP | other *** search
- #include "stdafx.h"
- #include "resource.h"
- #include "..\..\..\include\awaremfc.h"
-
- //////////////////////////////////////////////////////////////////////
- //
- // Register the VBX events used in the Clock application.
- //
-
- UINT VBN_CLICK = AfxRegisterVBEvent("Click");
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock apllication's about box.
- //
-
- class CAboutDlg : public CDialog
- {
- protected :
- CAwareClock* m_pClock;
-
- public :
- CAboutDlg();
-
- protected :
- virtual void DoDataExchange(CDataExchange* pDX);
- virtual BOOL OnInitDialog();
- };
-
- //////////////////////////////////////////////////////////////////////
-
- CAboutDlg::CAboutDlg() : CDialog(IDD_ABOUTBOX)
- {
- m_pClock = NULL;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void CAboutDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_VBControl(pDX, IDC_CLOCK, m_pClock);
- }
-
- //////////////////////////////////////////////////////////////////////
-
- BOOL CAboutDlg::OnInitDialog()
- {
- CDialog::OnInitDialog();
- m_pClock->SetAnalogTicks(CLK_ANALOGTICKS_HOUR);
- m_pClock->SetClockStyle(CLK_CLOCKSTYLE_ANALOG);
- return TRUE;
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock application's main window.
- //
-
- class CClockWnd : public CFrameWnd
- {
- protected :
- CAwareClock m_Clock;
-
- public :
- virtual BOOL Create();
-
- protected :
- afx_msg void OnClick(UINT, int, CWnd*, LPVOID lpParams);
- afx_msg void OnSize(UINT nType, int x, int y);
-
- DECLARE_MESSAGE_MAP()
- };
-
- //////////////////////////////////////////////////////////////////////
-
- BEGIN_MESSAGE_MAP(CClockWnd, CFrameWnd)
- ON_VBXEVENT(VBN_CLICK, IDC_CLOCK, OnClick)
- ON_WM_SIZE()
- END_MESSAGE_MAP()
-
- //////////////////////////////////////////////////////////////////////
-
- BOOL CClockWnd::Create()
- {
- CRect rectClock(100, 100, 100, 100);
-
- CFrameWnd::Create(
- NULL, "Aware/VBX Clock", WS_OVERLAPPEDWINDOW,
- rectDefault, NULL, "MainMenu"
- );
- m_Clock.Create(NULL, rectClock, this, IDC_CLOCK);
- m_Clock.SetAllowMoveHand(CLK_ALLOWMOVEHAND_LEFT_BUTTON);
- m_Clock.SetBorderStyle(CLK_BORDERSTYLE_NO_BORDER);
- m_Clock.SetClockStyle(CLK_CLOCKSTYLE_ANALOG);
- return TRUE;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- afx_msg void CClockWnd::OnClick(UINT, int, CWnd*, LPVOID lpParams)
- {
- int iButton = CLK_CLICK_BUTTON(lpParams);
-
- if( iButton == 2) // if right button click
- {
- switch( m_Clock.GetAnalogTicks() )
- {
- case CLK_ANALOGTICKS_NONE :
- m_Clock.SetAnalogTicks(CLK_ANALOGTICKS_HOUR);
- break;
- case CLK_ANALOGTICKS_HOUR :
- m_Clock.SetAnalogTicks(CLK_ANALOGTICKS_MINUTE);
- break;
- case CLK_ANALOGTICKS_MINUTE :
- m_Clock.SetAnalogTicks(CLK_ANALOGTICKS_BOTH);
- break;
- case CLK_ANALOGTICKS_BOTH :
- m_Clock.SetAnalogTicks(CLK_ANALOGTICKS_NONE);
- break;
- }
- }
- }
-
- //////////////////////////////////////////////////////////////////////
-
- afx_msg void CClockWnd::OnSize(UINT nType, int cx, int cy)
- {
- m_Clock.MoveWindow(0, 0, cx, cy);
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // The following class implements the Clock application.
- //
-
- class CClockApp : public CWinApp
- {
- public:
- virtual BOOL InitInstance();
- virtual int ExitInstance();
- afx_msg void OnAppAbout();
-
- DECLARE_MESSAGE_MAP()
- };
-
- //////////////////////////////////////////////////////////////////////
-
- BEGIN_MESSAGE_MAP(CClockApp, CWinApp)
- ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
- END_MESSAGE_MAP()
-
- //////////////////////////////////////////////////////////////////////
-
- BOOL CClockApp::InitInstance()
- {
- CClockWnd* pClockWnd = new CClockWnd();
-
- EnableVBX();
- LoadVBXFile("awarecc.vbx");
- pClockWnd->Create();
- pClockWnd->ShowWindow(m_nCmdShow);
- pClockWnd->UpdateWindow();
- m_pMainWnd = pClockWnd;
- return TRUE;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- int CClockApp::ExitInstance()
- {
- UnloadVBXFile("awarecc.vbx");
- return CWinApp::ExitInstance();;
- }
-
- //////////////////////////////////////////////////////////////////////
-
- void CClockApp::OnAppAbout()
- {
- CAboutDlg aboutDlg;
- aboutDlg.DoModal();
- }
-
- //////////////////////////////////////////////////////////////////////
- //
- // This is the one and only Clock application object.
- //
-
- CClockApp theApp;
-