在退出按钮那打开闪电符号设置响应函数OnExit
void CDemoDlg::OnExit()
{
// TODO: 在此添加控件通知处理程序代码
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
在窗口头文件demoDlg.h的public添加
public:
CString m_Value;
HTuple WindowHandle;
void CreateImageWindow();
afx_msg void OnExit();
在窗口源文件中实现
void CDemoDlg::CreateImageWindow()
{
CRect Picturebox_Region;
HTuple hv_Exception;
//IDC_STATIC窗口ID
GetDlgItem(IDC_STATIC)->GetClientRect(&Picturebox_Region);
HWND hPicturebox_Region = GetDlgItem(IDC_STATIC)->m_hWnd;
HTuple Row = (HTuple)Picturebox_Region.top;
HTuple Column = (HTuple)Picturebox_Region.left;
HTuple Width = (HTuple)Picturebox_Region.Width();
HTuple Height = (HTuple)Picturebox_Region.Height();
try
{
SetWindowAttr("background_color", "black");
OpenWindow(Row, Column, Width, Height, (Hlong)hPicturebox_Region, "visible", "", &WindowHandle);
}
catch (HalconCpp::HException &HDevExpDefaultException)
{
HDevExpDefaultException.ToHTuple(&hv_Exception);
throw HalconCpp::HException(hv_Exception);
}
}
在初始化函数中添加CreateImageWindow()函数
BOOL CDemoDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
//HObject ho_Image;
//ReadImage(&ho_Image,"F:/Qt_code/51.png");
CreateImageWindow();
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
运行
窗口为黑色,创建成功。