Ashur_451 Ответов: 1

Как открыть данные дочернего окна в Родительском окне


- Привет!

Я делаю простой графический редактор, используя OpenCV libriary , и я столкнулся с тем,что когда я использую openCV libriary,изображение,которое мне нужно открыть в hWnd,открывается в его "собственном" дочернем окне, и я не знаю, как получить картинку из дочернего окна и установить в родительское окно.

Что я уже пробовал:

int MyOpenFile(HWND hWnd)
{
	ZeroMemory(&ofn, sizeof(ofn));
	ofn.lStructSize = sizeof(ofn);
	ofn.hwndOwner = hWnd;
	ofn.lpstrFile = szFile;
	ofn.lpstrFile[0] = '\0';
	ofn.nMaxFile = sizeof(szFile);
	ofn.lpstrFilter = L"Bitmap files(*.bmp)\0*.bmp\0JPEG files(*.jpg)\0*.jpg\0All files(*.*)\0*.*\0\0";
	ofn.nFilterIndex = 1;
	ofn.lpstrFileTitle = NULL;
	ofn.nMaxFileTitle = 0;
	ofn.lpstrInitialDir = NULL;
	ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
	GetOpenFileName(&ofn);	

	wcstombs(filename,szFile,255);

	hdc = GetDC(hWnd);
	memDC = CreateCompatibleDC(hdc);
	image = cvLoadImage(filename, CV_LOAD_IMAGE_UNCHANGED);;

	dst = cvCloneImage(image);

	cvShowImage("image",image);//this func creates its own window,but i don't know 
                                   //how to display image in parent window
	cvWaitKey(0);
	cvReleaseImage(&image);
	cvDestroyAllWindows();

	ReleaseDC(hWnd, hdc);
	UpdateWindow(hWnd);

	return 0;
}


Я пробовал этот алгоритм MFC, но он не работает в Winapi,но я думаю, что это правильно,но не для winapi, пожалуйста, скажите мне, как правильно использовать его в winapi
    cvNamedWindow("IDC_STATIC_OUTPUT", 0);
cvResizeWindow("IDC_STATIC_OUTPUT", 420, 240);

hWnd = (HWND)cvGetWindowHandle("IDC_STATIC_OUTPUT");
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd, GetDlgItem(hWnd, ));
::ShowWindow(hParent, SW_HIDE);

cvShowImage("IDC_STATIC_OUTPUT", frame_copy)

Заранее благодарю вас!

1 Ответов

Рейтинг:
1

KarstenK

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

cvShowImage("MyWindowName",image);//use your windows (else it creates a new one
Вы Арент используя MFC, но Windows-API. Не смешивайте их.

Пожалуйста, потратьте некоторое время, копая корыто. Учебники OpenCV Часто в нем находятся тонны кода, который будет Вам полезен.