mfc顶用opencv在主对话框中用按键响应在新建的对话框中显示图片

mfc中用opencv在主对话框中用按键响应在新建的对话框中显示图片
我之前用mfc基于对话框写了一个线程,通过一个按键来显示处理过的图片,之前用的是cvnamewindow建的窗口,现在由于需要所迫要把处理过图片通过一个对话框中显示出来,不用cvnamewindow我知道可以通过pictue控件显示,但现在的问题是我的一切函数,线程,变量都在主对话框里,现在不知道怎样才能达到目的,还请大家多多指教

这是我的图片处理函数
void CtestDlg::imagerunhs(IplImage* img)
{


const char *showwindow = "imvishow";

IplImage *mo;
if(img)
{
mo = cvLoadImage("e:\1.jpg",1);

cvNamedWindow(showwindow,0);

cvSetImageROI(mo,cvRect(426,682,426,341));
cvResize(img,mo,CV_INTER_AREA);
cvResetImageROI(mo);

cvFlip(img,NULL, -1);
cvSetImageROI(mo,cvRect(426,0,426,341));
cvResize(img,mo,CV_INTER_AREA);
cvResetImageROI(mo);

IplImage * dst = 0;
dst = cvCloneImage (img);
double delte = 1.0;
double factor = 1.0;
float m[6];//factor = (cos(angle*CV_PI/180.) + 1.1)*3;
CvMat M = cvMat( 2, 3, CV_32F, m );
int w = img->width;
int h = img->height;
m[0] = (float)(factor*cos(-135*2*CV_PI/180.));
m[1] = (float)(factor*sin(-135*2*CV_PI/180.));
m[2] = w*0.5f;
m[3] = -m[1];
m[4] = m[0];
m[5] = h*0.5f;
cvZero (dst);
cvGetQuadrangleSubPix( img, dst, &M);
*img = *dst;
cvSetImageROI(mo,cvRect(852,341,426,341));
cvResize(img,mo,CV_INTER_AREA);
cvResetImageROI(mo);

cvFlip(img,NULL, 1);
cvSetImageROI(mo,cvRect(0,341,426,341));
cvResize(img,mo,CV_INTER_AREA);
cvResetImageROI(mo);

cvShowImage(showwindow,mo);

cvWaitKey(0);


cvReleaseImage(&img);
cvReleaseImage(&mo);
}

}
为了线程之间的参数传递我新建了个结构体
struct PARAMATER
{
CString path;
CRect rect;              
    HDC hdc; 

};

这是我的线程函数:
UINT CtestDlg::imagerun(LPVOID IpParamater)
{
CtestDlg *pDlg2  = (CtestDlg*)IpParamater;//为了使用类函数,指针传递
IplImage * img;
CString filename = ((PARAMATER*)IpParamater)->path;   //path为传递打开图片的路径
const char *path=filename.GetBuffer(sizeof(filename));
img = cvLoadImage(path,1);
pDlg2->imagerunhs(img);//调用图片处理函数
return 0;
}
现在我新建对话框了个对话框,id为IDD_DIALOG1,类为show,后面不知道怎么办,不知道在哪里改变什么??谢谢了

------解决方案--------------------
有一个c++的最大话函数,,用在你的对话框初始化,就可以了