Come riposizionare / ridimensionare la risorsa sullo schermo?
-
21-08-2019 - |
Domanda
Voglio incorporare l'applicazione della fotocamera nativa nel modulo personalizzato. Le proprietà r RECT dove voglio incorporare la fotocamera sono le seguenti:
r.top = 26; r.bottom = 220; r.left = 0; r.right = 320;
e questo è il metodo che esegue l'applicazione fotocamera nativa:
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;
}
Il metodo di cui sopra viene chiamato dalla finestra che dimensioni sono pari a r:
HRESULT hr = S_OK;
hr = m_PhotoCapture.CameraCapture(this->m_hWnd, L"test");
Qualcuno sa come modificare la funzione di cui sopra (hwndOwner) il modo per visualizzare la risorsa incorporata nel rettangolo r?
Soluzione
Non sei troppo chiaro su punti quali hwndOwner a. La mia ** ipotesi * su come questo probabilmente funziona è che è necessario creare una finestra che è un figlio della finestra di visualizzazione principale la cui posizione corrisponde il tuo rect (ed è visibile), quindi passare è gestire e che l'API di cattura quindi utilizza dShow inviare l'output delle benne telaio dalla fotocamera a quella finestra che la maniglia rappresenta.
Altri suggerimenti
Credo che è necessario mettere una casella di immagine (dimensionato per le vostre dimensioni desiderate) sul modulo personalizzato e quindi passare il manico finestre della casella di immagine al posto della maniglia della forma stessa.