- 博客(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
384
原创 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
509
原创 MFC多线程的使用(WIN32API)
1、在对话框类内声明两个变量 //线程句柄 HANDLE m_hThreadXXX; //线程ID DWORD m_dwThreadXXXID; 2、声明及定义线程函数(全局或者静态成员函数) 声明: static DWORD WINAPI Win32ThreadFuncXXX(LPVOID lpParam); 定义: DWORD __stdcall CMultiThreadWin32APIDlg::Win32ThreadFuncXXX(LPVOID lpParam) { //稍后传入this指针,这
2021-10-13 17:12:59
315
原创 MFC多线程的使用(CWinThread类)
1、首先在对话框.h文件(对话框类内)中声明变量 //多线程 CWinThread* m_ThreadXXX; //控制线程事件句柄(选择性使用) HANDLE m_hControlThreadEnvent 2、声明及定义线程函数 可以声明在类内,也可以在内外,区别在于类内必须静态。优先选择类内,因为后续可以访问私有变量。 声明: static UINT ThreadFuncXXX(LPVOID lPream); 定义: UINT CXXXDlg::ThreadFuncXXX(LPVOID lpPara
2021-10-13 16:11:05
2495
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
905
原创 在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
589
原创 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
1827
原创 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
405
原创 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
793
原创 MFC 设置某个静态文本的颜色
在此之间在类向导中添加一个消息: WM_CTLCOLOR HBRUSH 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
425
原创 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
1810
原创 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
696
原创 MFC CString转string
CString str; string cstr; USES_CONVERSION; //将CString转为string 保存在cstr中 cstr = T2A(str);
2020-12-21 13:57:03
226
原创 关于C++类交叉使用
比如现在有两个类 :A类 、B类 四个文件:A.h A.cpp B.h B.cpp 可以这样使用 A.h中代码 #pragma once class 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
399
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
201
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅