Как переместить / изменить размер ресурса на экране?

Я хочу встроить собственное приложение камеры в пользовательскую форму. Свойства RECT r, куда я хочу встроить камеру, следующие:

ртоп = 26; нижний = 220; r.left = 0; правое = 320;

и это метод, который запускает собственное приложение камеры:

HRESULT CPhotoCapture :: CameraCapture (HWND hwndOwner, LPTSTR pszFilename) {HRESULT hResult; SHCAMERACAPTURE shcc;

//Set the SHCAMERACAPTURE structure
ZeroMemory(&shcc, sizeof(shcc));
shcc.cbSize = sizeof(shcc);
shcc.hwndOwner = hwndOwner;
shcc.pszInitialDir = _T("\\My Documents");
shcc.pszDefaultFileName = _T("test.jpg");
shcc.pszTitle = _T("Camera Demo");
shcc.StillQuality = CAMERACAPTURE_STILLQUALITY_HIGH;
shcc.VideoTypes = CAMERACAPTURE_VIDEOTYPE_MESSAGING;
shcc.nResolutionWidth   = 1024;
shcc.nResolutionHeight  = 768;
shcc.nVideoTimeLimit    = 15;
shcc.Mode = CAMERACAPTURE_MODE_STILL;

//display the camera capture dialog
hResult = SHCameraCapture(&shcc);

if(hResult == S_OK)
{
    //TODO:: Write to log
}

return hResult;

}

Вышеприведенный метод вызывается из окна, размеры которого равны r:

HRESULT hr = S_OK;
hr = m_PhotoCapture.CameraCapture(this->m_hWnd, L"test");

Кто-нибудь знает, как изменить вышеупомянутую функцию (hwndOwner) способ отображения встроенного ресурса в прямоугольнике r?

12.12.2008 15:04:34
2 ОТВЕТА
РЕШЕНИЕ

Вам не очень понятно, на что указывает hwndOwner. Моя ** догадка * о том, как это, вероятно, работает, заключается в том, что вам нужно создать окно, являющееся дочерним элементом вашего основного окна отображения, местоположение которого совпадает с вашим прямоугольником (и является видимым), затем передать его дескриптор, а затем использовать API захвата D Как передать вывод кадров из камеры в то окно, которое представляет дескриптор.

0
12.12.2008 15:09:50
Да, у меня есть дочернее окно CCameraView, и метод вызывается следующим образом: HRESULT hr = S_OK; hr = m_PhotoCapture.CameraCapture (this-> m_hWnd, L "test");
Niko Gamulin 12.12.2008 15:16:49

Я думаю, что вам нужно поместить графический блок (по размеру в соответствии с вашими желаемыми размерами) в пользовательскую форму, а затем передать дескриптор окна графического блока вместо дескриптора самой формы.

1
12.12.2008 15:15:29