void CDVSBasePPage::AttachControls() { DetachControls(); AFX_MANAGE_STATE(AfxGetStaticModuleState()); POSITION pos = m_controls.GetStartPosition(); while (pos) { UINT id; CWnd* pControl; m_controls.GetNextAssoc(pos, id, pControl); if (pControl) { BOOL fRet = pControl->Attach(GetDlgItem(m_Dlg, id)); ASSERT(fRet); } } m_fAttached = true; }
INT_PTR CDVSBasePPage::OnReceiveMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_COMMAND: { if(m_bIsInitialized) { m_bDirty = TRUE; if(m_pPageSite) m_pPageSite->OnStatusChange(PROPPAGESTATUS_DIRTY); switch(HIWORD(wParam)) { case BN_CLICKED: case CBN_SELCHANGE: case EN_CHANGE: { AFX_MANAGE_STATE(AfxGetStaticModuleState()); if(!m_fDisableInstantUpdate && !(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == IDC_INSTANTUPDATE) && !!theApp.GetProfileInt(ResStr(IDS_R_GENERAL), ResStr(IDS_RG_INSTANTUPDATE), 1)) OnApplyChanges(); } } } } break; case WM_NCDESTROY: DetachControls(); break; } return OnMessage(uMsg, wParam, lParam) ? 0 : CBasePropertyPage::OnReceiveMessage(hwnd,uMsg,wParam,lParam); }