为何MFC中使用Halcon的DispObj来显示图片只显示第一张图,后面的
halcon吧
全部回复
仅看楼主
level 1
求问大神,我写了一个显示图片的代码如下,但奇怪的是如果我多次调用这个函数来显示不同的图片,显示窗口只显示第一次调用此函数时的图片(一直保持这张图片不会变),应该如何解决呢(程序中的其余函数是Halcon中自带的函数)
void CxuegaoMFCDlg::DrawHoImage(HObject h_pImage)
{
//EnterCriticalSection(&h_csShow);
HTuple HWindowID;
CRect Rect;
HTuple m_HWindowID;
HTuple m_ImageWidth, m_ImageHeight;
CWnd* pWnd = GetDlgItem(IDC_STATIC);
HWindowID = (Hlong)pWnd->GetSafeHwnd();;//获取父窗口句柄
pWnd->GetClientRect(&Rect);
OpenWindow(0, 0, Rect.Width(), Rect.Height(), HWindowID, "visible", "", &m_HWindowID);
GetImagePointer1(h_pImage, NULL, NULL, &m_ImageWidth, &m_ImageHeight);
SetPart(m_HWindowID, 0, 0, m_ImageHeight - 1, m_ImageWidth - 1);
DispObj(h_pImage, m_HWindowID);
}
2017年08月06日 07点08分 1
level 1

2017年08月22日 11点08分 2
level 1
要用ClearWindow()来清掉当前窗口内容,然后再加载新的图片,这样就可以重新显示了。我也遇到类似问题,已验证。
2018年08月01日 12点08分 3
请问MFC和Qt机制有区别吗?我用Qt去显示图片,每次只显示最后一张
2018年08月20日 09点08分
可以试一下clearwindow()函数,QT没用过。
2019年01月17日 04点01分
level 1
你可以把
HTuple HWindowID;
CRect Rect;
CWnd* pWnd = GetDlgItem(IDC_STATIC)
HWindowID = (Hlong)pWnd->GetSafeHwnd();;//获取父窗口句柄
pWnd->GetClientRect(&Rect);
OpenWindow(0, 0, Rect.Width(), Rect.Height(), HWindowID, "visible", "", &m_HWindowID);
放到OnInitDialog()初始化函数中,就可以了
2018年10月03日 10点10分 4
不行啊
2022年04月20日 09点04分
h_pImage.DispObj(m_HWindowID); 这样呢
2022年09月23日 08点09分
1