Esempio n. 1
0
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);
}