[DirectShow 이 페이지와 연결된 기능은 레거시 기능입니다. MediaPlayer, IMFMediaEngine, 그리고 Media Foundation 의 오디오/비디오 캡처가 대체했습니다. 이러한 기능은 Windows 10 및 Windows 11에 최적화되었습니다. Microsoft는 가능하면 새로운 코드에서 MediaPlayer, IMFMediaEngine 및 Audio/Video Capture를 DirectShow대신 Media Foundation 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
CBasePropertyPage::OnActivate 메서드를 재정의하여 대화 상자를 초기화하십시오. 이 예제에서 속성 페이지는 슬라이더 컨트롤을 사용하므로 OnActivate 첫 번째 단계는 공용 컨트롤 라이브러리를 초기화하는 것입니다. 그런 다음, 이 메서드는 필터 채도 속성의 현재 값을 사용하여 슬라이더 컨트롤을 초기화합니다.
HRESULT CGrayProp::OnActivate(void)
{
INITCOMMONCONTROLSEX icc;
icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
icc.dwICC = ICC_BAR_CLASSES;
if (InitCommonControlsEx(&icc) == FALSE)
{
return E_FAIL;
}
ASSERT(m_pGray != NULL);
HRESULT hr = m_pGray->GetSaturation(&m_lVal);
if (SUCCEEDED(hr))
{
SendDlgItemMessage(m_Dlg, IDC_SLIDER1, TBM_SETRANGE, 0,
MAKELONG(SATURATION_MIN, SATURATION_MAX));
SendDlgItemMessage(m_Dlg, IDC_SLIDER1, TBM_SETTICFREQ,
(SATURATION_MAX - SATURATION_MIN) / 10, 0);
SendDlgItemMessage(m_Dlg, IDC_SLIDER1, TBM_SETPOS, 1, m_lVal);
}
return hr;
}
다음: 7단계. 창 메시지 처리
관련 항목
-
필터 속성 페이지 만들기