MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以

对对话框创建流程不是太清楚。
下面代码只能通过按钮点击响应才可以,但直接放在对话框初始化以及onsize里面就不行。

cv::Mat mat, mat2;

mat = cv::imread("D:\\test1.jpg", 1);
if(! mat.data) {
    MessageBox(_T("error", "no image loaded!"), MB_OK);
    return;
}

CRect rect;
GetDlgItem(IDC_STATIC)->GetClientRect(&rect);

CDC* pDC = GetDlgItem(IDC_STATIC)->GetDC();
HDC hDC = pDC->GetSafeHdc();
IplImage img = mat;
CvvImage cimg;
cimg.CopyOf( &img );

cimg.DrawToHDC(hDC, &rect);