// OXCustomizeCoolControlsPage.cpp : implementation file // // Version: 9.3 #include "stdafx.h" #include "OXCustomizeCoolControlsPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif const int IDC_CHECK_CONTROLTYPE_BASE=1; BOOL COXCustomizeCoolControlOrganizer::IsQualified(HWND hWnd, LPCTSTR lpszWndClass) { ASSERT(m_pCustomizeCoolControlsPage!=NULL); if(!COXCoolControlOrganizer::IsQualified(hWnd,lpszWndClass)) return FALSE; return m_pCustomizeCoolControlsPage-> IsQualifiedForCoolControl(hWnd,lpszWndClass); } IMPLEMENT_DYNCREATE(COXCustomizeCoolControlsPage, COXCustomizePage) ///////////////////////////////////////////////////////////////////////////// // COXCustomizeCoolControlsPage dialog COXCustomizeCoolControlsPage::COXCustomizeCoolControlsPage() { //{{AFX_DATA_INIT(COXCustomizeCoolControlsPage) m_bConvertToCool = FALSE; //}}AFX_DATA_INIT m_nDialogID=IDD; m_sProfileName.Empty(); m_mapControls.SetAt(0,_T("Edit box")); m_mapControls.SetAt(1,_T("Button")); m_mapControls.SetAt(2,_T("Combo box")); m_mapControls.SetAt(3,_T("Tree control")); m_mapControls.SetAt(4,_T("List control")); m_mapControls.SetAt(5,_T("List box")); m_mapControls.SetAt(6,_T("Spin button")); m_mapControls.SetAt(7,_T("Scroll bar")); m_mapControls.SetAt(8,_T("Progress bar")); m_mapControls.SetAt(9,_T("Slider control")); m_mapControls.SetAt(10,_T("Hot key control")); m_mapControls.SetAt(11,_T("Rich edit control")); #if _MFC_VER > 0x0421 m_mapControls.SetAt(12,_T("Date-time picker")); m_mapControls.SetAt(13,_T("Month calendar")); m_mapControls.SetAt(14,_T("IP address edit box")); #endif // _MFC_VER > 0x0421 m_mapControlWndClass.SetAt(EDIT_CLASSNAME,0); m_mapControlWndClass.SetAt(BUTTON_CLASSNAME,1); m_mapControlWndClass.SetAt(SPIN_CLASSNAME,6); m_mapControlWndClass.SetAt(HOTKEY_CLASSNAME,10); m_mapControlWndClass.SetAt(COMBOBOX_CLASSNAME,2); m_mapControlWndClass.SetAt(SCROLLBAR_CLASSNAME,7); m_mapControlWndClass.SetAt(PROGRESS_CLASSNAME,8); m_mapControlWndClass.SetAt(SLIDER_CLASSNAME,9); m_mapControlWndClass.SetAt(LISTVIEW_CLASSNAME,4); m_mapControlWndClass.SetAt(TREEVIEW_CLASSNAME,3); m_mapControlWndClass.SetAt(LISTBOX_CLASSNAME,5); m_mapControlWndClass.SetAt(RICHEDIT_CLASSNAME,11); #if _MFC_VER > 0x0421 m_mapControlWndClass.SetAt(DATETIME_CLASSNAME,12); m_mapControlWndClass.SetAt(MONTHCAL_CLASSNAME,13); m_mapControlWndClass.SetAt(IPADDRESS_CLASSNAME,14); #endif // _MFC_VER > 0x0421 for(int nIndex=0; nIndexGetProfileInt(m_sProfileName, _T("ConvertCommonToCool"),m_bConvertToCool); } if(m_bConvertToCool) { CWnd* pWnd=AfxGetMainWnd(); ASSERT(pWnd!=NULL && ::IsWindow(pWnd->GetSafeHwnd())); if(!m_coolControlOrganizer.AttachAllInThread()) return FALSE; if(!m_sProfileName.IsEmpty()) { for(int nIndex=0; nIndexGetProfileInt(m_sProfileName,sItem,nState)); } } } return TRUE; } BOOL COXCustomizeCoolControlsPage::OnCloseManager(BOOL bIsOk) { CWinApp* pApp=AfxGetApp(); ASSERT(pApp!=NULL); if(bIsOk) { if(!ApplyChanges()) return FALSE; if(!m_sProfileName.IsEmpty()) { pApp->WriteProfileInt(m_sProfileName, _T("ConvertCommonToCool"),m_bConvertToCool); for(int nIndex=0; nIndexWriteProfileInt(m_sProfileName,sItem, m_treeControlTypes.GetCheck(IDC_CHECK_CONTROLTYPE_BASE+nIndex)); } m_treeControlTypes.SaveState(m_sProfileName,_T("TreeControlTypes")); } } else { if(!m_sProfileName.IsEmpty()) { m_bConvertToCool=(BOOL)pApp->GetProfileInt(m_sProfileName, _T("ConvertCommonToCool"),m_bConvertToCool); UpdateData(FALSE); m_treeControlTypes.LoadState(m_sProfileName,_T("TreeControlTypes")); VERIFY(ApplyChanges()); } } return TRUE; } void COXCustomizeCoolControlsPage::DoDataExchange(CDataExchange* pDX) { COXCustomizePage::DoDataExchange(pDX); //{{AFX_DATA_MAP(COXCustomizeCoolControlsPage) DDX_Control(pDX, IDC_OX_TREE_CONTROL_TYPES, m_treeControlTypes); DDX_Check(pDX, IDC_OX_CHECK_CONVERT, m_bConvertToCool); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(COXCustomizeCoolControlsPage, COXCustomizePage) //{{AFX_MSG_MAP(COXCustomizeCoolControlsPage) ON_BN_CLICKED(IDC_OX_BUTTON_CONVERT_ALL, OnButtonConvertAll) ON_BN_CLICKED(IDC_OX_CHECK_CONVERT, OnCheckConvert) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // COXCustomizeCoolControlsPage message handlers BOOL COXCustomizeCoolControlsPage::Load(const COXCustomizeManager* pCustomizeManager) { // Call default implementation. It will load this demo dialog as the first // page and will create About and CodeSample pages if specified. if(!COXCustomizePage::Load(pCustomizeManager)) return FALSE; return TRUE; } void COXCustomizeCoolControlsPage::Unload() { // add here code for cleaning up all objects created by demo // // ////////////////////////////////////////////////////////////////////////// COXCustomizePage::Unload(); } void COXCustomizeCoolControlsPage::OnInitDialog() { // must call default implementation COXCustomizePage::OnInitDialog(); // add here initialization code for your demo dialog. Treat it as a // normal CDialog::OnInitDialog function // populate tree control m_treeControlTypes.DeleteAllItems(); // root item int nImageIndex=m_treeControlTypes.AddImage(IDB_OX_CUSTOMIZECOOLCONTROLS_CONTROLS, RGB(192,192,192)); ASSERT(nImageIndex!=-1); CString sItem; VERIFY(sItem.LoadString(IDS_OX_CSTMZECOOLCONTROLCONVERT));//"Convert the following common controls" HTREEITEM hRootItem=m_treeControlTypes. AddControlGroup(sItem, NULL,TRUE,nImageIndex,nImageIndex); ASSERT(hRootItem!=NULL); m_treeControlTypes.SetItemState(hRootItem,TVIS_BOLD,TVIS_BOLD); for(int nIndex=0; nIndexEnableWindow(m_bConvertToCool); } BOOL COXCustomizeCoolControlsPage::IsQualifiedForCoolControl(HWND hWnd, LPCTSTR lpszWndClass) { UNREFERENCED_PARAMETER(hWnd); int nType=-1; VERIFY(m_mapControlWndClass.Lookup(_T("ComboBox"),nType)); int nControlType=-1; if(m_mapControlWndClass.Lookup(lpszWndClass,nControlType)) { ASSERT(nControlType!=-1); int nState=-1; VERIFY(m_mapControlState.Lookup(nControlType,nState)); ASSERT(nState!=-1); if(nState==OTITEM_UNCHECKED) return FALSE; } return TRUE; }