学习MFC
记录最实用的技巧,以最快的速度响应需求。
三石目
略知一二机器视觉
展开
-
一种应用程序服务通过负载均衡实现异步响应的方法
用C++搭建的web服务不支持多线程异步,可以通过打开多个不同端口的应用程序,然后配置nginx实现。1、实现通过命令参数运行应用程序;这里以mfc应用程序为例,可通过属性设置调试;2、批处理打开多个不同端口的应用程序;echo offtaskkill /f /im XRayDetector.exestart XRayDetector.exe 9697start XRayDetector.exe 9698start XRayDetector.exe 9699start XRayDetect原创 2022-02-17 12:01:12 · 1348 阅读 · 0 评论 -
Visual Studio实现远程调试(适用VS 2017、VS 2019)
一、背景说明在进行设备控制软件开发的时候,需要进行设备的上机调试。我们在安装了工作环境(VS2010+Access+流程图等软件)的电脑上编码写好待调试的软件之后,待机器零配件和电气安装好之后,再在设备上进行调试,这个时候,设备会自带自己的工控电脑,这个工控电脑没有安装代码调试的软件。一般的解决办法是,将开发所需要的所有软件在目标工控机上再安装一遍,然后将代码拷贝到目标机,然后在目标机上修改代...原创 2019-05-08 10:23:03 · 15986 阅读 · 3 评论 -
学习OpenCV4:K-Means方法实现证件照背景替换
环境:OpenCV4.1.0+VS2017+MFC应用程序:https://download.csdn.net/download/stone_wang_mz/11165793源码:https://gitee.com/Stone_Wang/ReplaceBackground,环境自行配置说明:通过OpenCV中K-Means方法实现。...原创 2019-05-08 10:17:40 · 780 阅读 · 0 评论 -
Halcon+MFC实现手眼(九点)标定
下载链接理论原理图像坐标系与机器坐标系(包括机器人坐标、运动平台、激光振镜)建立关系后,在应用过程中只要知道相机视野中图像的某个坐标,即可知道对应的机器坐标。我们知道建立两个平面之间的关系最少需要三个点,即三个点即可完成标定,叫九点标定只是因为为了提高精度,在项目中比较常用。该模块中,通过自动找标定图像中圆的圆心作为基准点,最少需要四个点,最多九个点。注意:当图像坐标与机器坐标的相对...原创 2019-04-10 15:09:57 · 6281 阅读 · 0 评论 -
关于wxWidget多语言移植时一些注意事项
首先感谢下面链接博主的教程,对应功能顺利实现,很强。相关教程链接:http://blog.csdn.net/songly1/article/details/6528352需要注意的几个点1、将wxLocale.h,LanguageLib.lib,LanguageLib.dl拷贝到项目路径中,将wxLocale.h添加到头文件夹中年,在项目属性的链接器中添加依赖LanguageLib.l原创 2017-07-14 11:18:48 · 685 阅读 · 0 评论 -
显示:实现MFC下图像的读取显示与本地保存
读取显示void CXXXDlg::OnBnClickedButtonLoad(){ TCHAR *szFilter = _T("image files (*.jpeg; *.jpg; *.bmp;*.png)|*.jpeg; *.jpg; *.bmp; *.png|image files (*.jpeg)|*.jpeg|image files (*.jpg)|*.jpg|image f...原创 2019-05-23 13:37:34 · 2033 阅读 · 1 评论 -
显示:将Mat图片居中显示到MFC的picture控件上(通过StretchDIBits)
BOOL CXXXDlg::ShowMat(Mat image){ if (image.empty()) return FALSE; CRect rect; int width, height; BITMAPINFO bitmapInfo; BITMAPINFOHEADER* bmiHeader; width = image.cols; height = image.rows;...原创 2019-05-22 15:33:59 · 792 阅读 · 0 评论 -
VC++中模块支持多语言的方法
BOOL CRMApp::SetLangType(){ TCHAR szPath[1024] = { 0 }; TCHAR szFileName[1024] = { 0 }; GetModuleFileName(NULL, szPath, 1024); *(_tcsrchr(szPath, _T('\\'))+1) = NULL; _stprintf_s(szFileName,MA...原创 2019-07-01 17:35:04 · 537 阅读 · 0 评论 -
Halcon+MFC实现相机畸变校正
下载链接 理论原理提供标定板信息,获取到不同视角的标定板图片后,生成畸变系数。模块使用事项在Demo中找到CCaliDistort.dll,该dll函数接口如图:DlgShowEx:打开对话框设置修改参数后获取畸变参数。GetImageEx:输入图像后通过获取的畸变参数获取到畸变后的图片。畸变校正前畸变校正后:观察处理前后图片明显发生了明显变化。...原创 2019-04-10 15:28:07 · 1913 阅读 · 0 评论 -
显示:Mat与CImage之间的互相转换
void CDlgShow::MatToCImage(Mat& mat, CImage& cimage){ if (0 == mat.total()) { return; } int nChannels = mat.channels(); if ((1 != nChannels) && (3 != nChannels)) { return;...原创 2019-03-06 16:52:34 · 2909 阅读 · 0 评论 -
将opencv中的Mat居中显示到MFC的picture控件上
将图像类型由Mat转换为CImage后,使图片适应居中显示void CXXX::ShowImage(Mat mImage){ CRect rect;//定义矩形类 CWnd *pWnd= GetDlgItem(IDC_STATIC_CAM_SHOW); //获取控件句柄 pWnd->GetClientRect(&rect); //获取句柄指向控...原创 2019-03-04 17:21:58 · 845 阅读 · 0 评论 -
各数据类型转换汇总(亲测)包括MFC、OpenCV、Halcon等
持续更新。。。1、CString转Const Char*CString strTemp=_T("测试");Const Char* charTemp=CT2A(strTemp);2、CString与string转换/*方法1*/USES_CONVERSION;CString CStrFileName = dlgFile.GetPathName();std::string ...原创 2019-02-14 16:30:15 · 825 阅读 · 0 评论 -
MFC下用CBitmap或者CImage在picture control控件上面居中全部显示图片
1、用CBitmap显示图片 CBitmap bitmapCam; if (!GetImage(bitmapCam))//先在这里获取图像!!! { AfxMessageBox(_T("获取图片失败!")); return; } /*获取窗口信息,IDC_STATIC_CAM_SHOW为控件ID*/ HWND mHwndShow = GetDlgItem(IDC_STATI...原创 2019-02-13 16:08:36 · 1876 阅读 · 0 评论 -
MFC下使用VC++的一些功能与技巧
长期在MFC下使用VC++,记录一些基础的常用的功能与技巧(长期更新)1、SetDlgItemText (IDC_BUTTON1,_T("这个是按钮改变后的标题"));2、GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_SHOW);//SW_HIDE3、if(IDCANCEL==AfxMessageBox(_T("即将打开窗口,是否继续!"),M...原创 2018-12-24 14:58:52 · 483 阅读 · 0 评论 -
MFC中通过组合键打开新的窗口
通过类向导调出函数PreTranslateMessage,在函数中添加下面代码,根据自己需求修改相关类。代码如下:BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message == WM_KEYDOWN) { switch (pMsg->wParam) { case VK_ESCAPE: Se原创 2017-11-27 16:58:24 · 607 阅读 · 0 评论 -
通过MFC实现数码管显示功能
使用VS2017,如果其他版本不能正常运行自己新建项目,比较简单。功能:通过按钮使数码管的数字加1。1、新建MFC应用程序,这里命名为MyTest,引导选择基于对话框,其他默认。2、将3DBar.cpp、3DBar.h和StaticCounter.cpp、StaticCounter.h分别添加到头文件与源文件。相应文件自己到项目中拷贝出来。3、从工具栏中添加文本框“Static T原创 2017-07-12 14:59:57 · 2726 阅读 · 3 评论 -
显示:MFC中采用分段线性对比度处理图像并且显示在控件中
功能:获取原图后,通过opencv相关函数对图像像素点进行对比度处理,然后在MFC的PictureControl中显示出来。采用Opencv2.3.1,CvvImage类已经不在其中,需要额外增加,需要自行下载。参数过多,更多实用算法可在此基础上开发。头文件: CvvImage m_CvvImage; IplImage* m_Frame; int m_X1;...原创 2017-09-16 14:50:52 · 574 阅读 · 0 评论 -
MFC中实现组合键调用窗口功能
在类向导中选择主对话框类名,在虚函数增加函数PreTranslateMessage(),然后在函数中增加需要的代码。这里通过CTRL+SHIFT+F9打开hello,word!窗口。BOOL CMonitorTsetDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message == WM_KEYDOWN) { swi原创 2017-08-04 10:04:00 · 680 阅读 · 0 评论 -
C++中通过MFC对ini初始化,配置文件的读写使用
软件重新打开需要保存上一次关闭时的配置参数时,非常适用。 CString filepath ; GetModuleFileName(NULL,filepath.GetBuffer(MAX_PATH),MAX_PATH);//得到运行文件路径 filepath.ReleaseBuffer(); filepath = filepath.Left(filepath.ReverseFind('\原创 2017-07-12 15:51:10 · 866 阅读 · 0 评论 -
通过MFC将数据保存到Excel中
VS2017中亲测有效。谢。http://www.cnblogs.com/yaowen/archive/2013/01/22/2870756.html原创 2017-07-18 15:30:53 · 2353 阅读 · 0 评论 -
通过MFC将数据保存到TXT中
添加保存Button:在函数中添加如下代码。void CMyTestDlg::OnBnClickedButtonSave(){ setlocale(LC_CTYPE, "chs"); CString FileName; CFileDialog dlgFile(FALSE, _T("*.txt"), NULL, OFN_HIDEREADONLY, _T("Describe File(*.原创 2017-07-18 08:56:36 · 10348 阅读 · 3 评论 -
MFC中软件开启等待界面的实现方法
比如我们打开Visual Studio,加入工作界面之前,都可以看到像下面的开启界面。该界面可以用于展示软件的功能用途、产品展示和开发者消息。1、在可以正常运行的对话框基础上,右键rc文件夹导入或者新建BMP图片3、新建对话框,相关参数设置如下:4、添加Picture Control控件。属性设置如下,注意Image指向的ID。5、新建一个对话框对应的类原创 2017-07-14 14:00:49 · 4046 阅读 · 0 评论