judelaw
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору V0lt Цитата: сделать функцию, которая будет менять цвет только по одному параметру | нормально и так, хотя ... возможно и лучше было бы. А по OSD... я бы влепил примерно так: (вывод в OSD в % соотношении (50% - норма, 0%-минимум, 100%-максимум)): void CPPageMisc::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { CString strOSD; if (*pScrollBar == m_SliBrightness) { UpdateData(); m_iBrightness = m_SliBrightness.GetPos(); strOSD.Format(_T("Brightness : %d %%"), (int)(50.0 + (m_iBrightness/2))); } else if (*pScrollBar == m_SliContrast) { UpdateData(); m_iContrast = m_SliContrast.GetPos(); strOSD.Format(_T("Contrast : %d %%"), (int)(m_iContrast/2)); } else if (*pScrollBar == m_SliHue) { UpdateData(); m_iHue = m_SliHue.GetPos(); strOSD.Format(_T("Hue : %d %%"), (int)(50 + (m_iHue/3.6))); } else if (*pScrollBar == m_SliSaturation) { UpdateData(); m_iSaturation = m_SliSaturation.GetPos(); if (m_iSaturation <= 100) { strOSD.Format(_T("Saturation : %d %%"), (int)(m_iSaturation/2)); } else { strOSD.Format(_T("Saturation : %d %%"), (int)(25 + ((m_iSaturation)/4))); } } SetModified(); ((CMainFrame*)AfxGetMyApp()->GetMainWnd())->SetColorControl(m_iBrightness, m_iContrast, m_iHue, m_iSaturation); ((CMainFrame*)AfxGetMyApp()->GetMainWnd())->m_OSD.DisplayMessage(OSD_TOPLEFT, strOSD, 3000); __super::OnHScroll(nSBCode, nPos, pScrollBar); } и на рисет еще вывод сообщения типа "Color Reset" Блин, еще локализацию делать нужно будет | Всего записей: 2830 | Зарегистр. 22-09-2009 | Отправлено: 18:14 10-08-2011 | Исправлено: judelaw, 18:17 10-08-2011 |
|