- 博客(15)
- 收藏
- 关注
原创 C# async/await 简单使用
async/await可以实现不阻塞主线程的情况下等待子线程的计算结果private async void FormLoading_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; Task taskSetTxt = new Task(this.SetPBText); taskSetTxt.Start
2021-11-06 09:53:52
261
原创 MFC中捕捉halcon异常
try { } catch (HalconCpp::HException& except) { CString str_error; str_error = except.ErrorMessage().operator LPCSTR(); AfxMessageBox(str_error); }
2021-10-15 08:58:05
403
原创 MFC多线程的使用(WIN32API)
1、在对话框类内声明两个变量//线程句柄HANDLE m_hThreadXXX;//线程IDDWORD m_dwThreadXXXID;2、声明及定义线程函数(全局或者静态成员函数)声明:static DWORD WINAPI Win32ThreadFuncXXX(LPVOID lpParam);定义:DWORD __stdcall CMultiThreadWin32APIDlg::Win32ThreadFuncXXX(LPVOID lpParam){ //稍后传入this指针,这
2021-10-13 17:12:59
241
原创 MFC多线程的使用(CWinThread类)
1、首先在对话框.h文件(对话框类内)中声明变量//多线程CWinThread* m_ThreadXXX;//控制线程事件句柄(选择性使用)HANDLE m_hControlThreadEnvent2、声明及定义线程函数可以声明在类内,也可以在内外,区别在于类内必须静态。优先选择类内,因为后续可以访问私有变量。声明:static UINT ThreadFuncXXX(LPVOID lPream);定义:UINT CXXXDlg::ThreadFuncXXX(LPVOID lpPara
2021-10-13 16:11:05
2108
1
原创 用DirectShow调用摄像头采集图像并转化为halcon图像
//转Halcon图像HObject ImageDataPtr2HObject(CCameraDS& CameraDS, BYTE* imageDataPtr){ HObject image; if (8 == CameraDS.GetBitCount()) //灰度图 { //造一个灰度图 GenImage1( &image, "byte", CameraDS.GetWidth(), CameraDS.GetHeight(), Hlong(i
2021-10-12 16:21:48
799
原创 在MFC中打开一个Halcon窗口(用图片控件作为载体)
在MFC中打开一个Halcon窗口(用图片控件作为载体)HTuple OpenWindow_(CWnd* pWnd){ CRect rect; HTuple Row, Col, Width, Height; HTuple FatherWindow; HTuple WindowHandle; Row = Col = 0; pWnd->GetClientRect(rect); Width = rect.Width(); Height = rect.Height(); FatherWi
2021-10-11 20:34:00
483
原创 Halcon12 set_display_font 函数
void set_display_font(HTuple hv_WindowHandle, HTuple hv_Size, HTuple hv_Font, HTuple hv_Bold, HTuple hv_Slant){ // Local iconic variables // Local control variables HTuple hv_OS, hv_BufferWindowHandle, hv_Ascent; HTuple hv_Descent, hv_Width, hv_H
2021-01-02 17:00:22
1610
原创 MFC 设置静态文本字体
在初始化对话框函数中添加CFont* font; font = new CFont; font->CreateFont( 60, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight FALSE, // bItalic FALSE, //
2021-01-02 13:22:50
310
原创 MFC 打开文件对话框 并获得文件路径
CFileDialog dlg( TRUE , NULL , NULL , OFN_HIDEREADONLY , L"jpg(*.jpg) | *.jpg|png(*.png)|*.png|bmp(*.bmp)|*.bmp|所有文件(*.*)|*.*||" ,this ); if (IDOK != dlg.DoModal()) { return; } else { //索对话框中输入文件的完整路径 CString strFileNamePath = dlg.G
2020-12-30 15:32:34
692
原创 MFC 设置某个静态文本的颜色
在此之间在类向导中添加一个消息: WM_CTLCOLORHBRUSH CFishChipDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何特性 if (pWnd->GetDlgCtrlID() == IDC_STATIC_OKRATE)// 所选文本框ID { pD
2020-12-30 15:25:14
332
原创 Halcon12 disp_message函数
void CFishCheckDlg::disp_message(HTuple hv_WindowHandle, HTuple hv_String, HTuple hv_CoordSystem, HTuple hv_Row, HTuple hv_Column, HTuple hv_Color, HTuple hv_Box){ // Local iconic variables // Local control variables HTuple hv_Red, hv_Green,
2020-12-30 11:09:20
1571
原创 MFC打开文件夹,并获得路径
// TODO: 在此添加控件通知处理程序代码 CFolderPickerDialog folder_picker_dlg; //如果要出现新建文件夹按钮的话 可以这样CFolderDialog dlg(_T( "选择要转换的文件夹" ), FoldPath, this,BIF_NEWDIALOGSTYLE); if (folder_picker_dlg.DoModal() == IDOK) { m_strFolderPath = folder_picker_dlg.GetFolderPath
2020-12-30 10:53:47
553
原创 MFC CString转string
CString str;string cstr;USES_CONVERSION;//将CString转为string 保存在cstr中cstr = T2A(str);
2020-12-21 13:57:03
142
原创 关于C++类交叉使用
比如现在有两个类 :A类 、B类四个文件:A.h A.cpp B.h B.cpp可以这样使用A.h中代码#pragma onceclass B; //B类的前置声明class A{public: A(); ~A();private: B m_b; //定义一个B类的对象};A.cpp中的代码#include "A.h"#include "B.h" //包含B类的头文件A(){}~A(){}B.h中代码#pragma o
2020-12-19 22:33:39
302
2
原创 我的第一篇博客测试
重写PreTranslateMessage虚函数来获得键盘消息BOOL CMFCSocketLeanDlg::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 if (pMsg->message == WM_KEYDOWN) { if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN && GetKeyState(
2020-12-19 11:53:20
157
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人