Listing 4: tipdemo.cpp
Demo program for generic tool tips
/*------------------------------------------------------------------ TipDemo.cpp: Implementation of TipDemo.EXE Author: Zuoliu Ding ------------------------------------------------------------------*/ #include <afxwin.h> #include <afxcmn.h> #include "TipWnd.h" #include "TipHlpr.h" #include "tipDemo.h" void CTipDemoDlg ::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTipDemoDlg ) DDX_Control(pDX, IDC_IPADDRESS, m_ipAdr); DDX_Control(pDX, IDC_CUSTOM, m_custom); DDX_Control(pDX, IDC_PROGRESS, m_progress); DDX_Control(pDX, IDC_SCROLLBAR, m_scroll); DDX_Control(pDX, IDC_SPIN, m_spin); DDX_Control(pDX, IDC_SLIDER, m_slider); DDX_Check(pDX, IDC_CHECK, m_bCheck); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CTipDemoDlg , CDialog) //{{AFX_MSG_MAP(CTipDemoDlg ) ON_WM_MOUSEMOVE() ON_BN_CLICKED(IDC_CHECK, OnCheck) //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL CTipDemoDlg ::OnInitDialog() { CDialog::OnInitDialog(); m_tip.Create(this, 1); m_tip.SetTipBkClr(RGB(255, 255, 0)); // Bright yellow UINT uIDs[8] ={IDOK, IDC_RADIO1, IDC_RADIO2, IDC_COMBO, IDC_LIST, IDC_EDIT, IDC_HOTKEY, IDC_CHECK}; for (int i=0; i<8; i++) m_tipHelpers[i].SubclassDlgItem(uIDs[i], this); CString str; for (i=0; i<10; i++) { str.Format(_T("List String %d"), i); ((CListBox*)&m_tipHelpers[4])->AddString(str); } m_tipHelpers[5].SetWindowText("An Edit Box"); ((CComboBox*)GetDlgItem(IDC_COMBO))->SetCurSel(1); ((CHotKeyCtrl*)GetDlgItem(IDC_HOTKEY))-> SetHotKey('A', HOTKEYF_ALT); ((CProgressCtrl*)&m_progress)->SetPos(30); ((CSliderCtrl*)&m_slider)->SetRange(1, 10); ((CIPAddressCtrl*)&m_ipAdr)->SetAddress(2878873543); OnCheck(); return TRUE; } void CTipDemoDlg ::OnMouseMove(UINT nFlags, CPoint point) { // No member variable required SET_TIP_TEXT(m_tip, IDC_STATICUSAGE, "The Static Text") SET_TIP_TEXT(m_tip, IDC_STATICICON, "The Picture: Icon") SET_TIP_TEXT(m_tip, IDC_STATICGROUP, "The Group Box") // Attached to the CTipHelper array m_tipHelpers SET_TIP_TEXT(m_tip, IDOK, "The Exit Button") SET_TIP_TEXT(m_tip, IDC_RADIO1, "The Radio Button1") SET_TIP_TEXT(m_tip, IDC_RADIO2, "The Radio Button2") SET_TIP_TEXT(m_tip, IDC_COMBO, "The Combo Box") SET_TIP_TEXT(m_tip, IDC_EDIT, "The Edit Box") SET_TIP_TEXT(m_tip, IDC_HOTKEY, "The Hotkey Editor") SET_TIP_TEXT(m_tip, IDC_CHECK, "The Check Box") SET_TIP_TEXT(m_tip, IDC_LIST, "The List Box is " + CString(m_bCheck? "Enabled": "Disabled")) // Attached to the DDX_ variables of CTipHelper SET_TIP_TEXT(m_tip, IDC_SLIDER, "The Slider Bar") SET_TIP_TEXT(m_tip, IDC_PROGRESS, "The Progress Bar") SET_TIP_TEXT(m_tip, IDC_IPADDRESS, "The IP Address Editor") SET_TIP_TEXT(m_tip, IDC_CUSTOM, "The Custom Control") SET_TIP_TEXT(m_tip, IDC_SPIN, "The Spin Control") SET_TIP_TEXT(m_tip, IDC_SCROLLBAR, "The Scoll Bar") END_TIP_TEXT(m_tip) CDialog::OnMouseMove(nFlags, point); } void CTipDemoDlg ::OnCheck() { UpdateData(); GetDlgItem(IDC_LIST)->EnableWindow(m_bCheck); } // End of File