
MFC
BeanGo
敲不完的代码
展开
-
C++将string转化成字符串数组
//str为需要截断的string,pattern为分隔符std::vector<std::string> split(std::string str,std::string pattern){ std::string::size_type pos; std::vector<std::string> result; str+=pattern;//扩展字符串以方便操作 int size=str.size(); for(in原创 2021-09-26 11:04:08 · 885 阅读 · 0 评论 -
Opencv 计算图片旋转角度
vector<vector<Point>> vec_point;vector<Vec4i> hireachy;findContours(img_canny1, vec_point, hireachy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));//绘制轮廓img3 = Mat::zeros(img1.size(),CV_8UC1);float maxw = 0;float maxh = 0;double de.原创 2021-09-18 17:19:42 · 1449 阅读 · 0 评论 -
VS2017 MFC调试时断点处出现 “当前不会命中断点.还没有为该文档加载任何符号“的解决方法
在使用vs的过程中,有些工程可以编译通过正常运行,但是在下断点调试时会显示"当前不会命中断点.还没有为该文档家在任何符号". 如下图1图1这并不是vs的bug,而是在设置选项中没有在对应的位置设置调试信息.可以按照下列方法打开断点:1.右键项目->属性 ->配置属性 ->C/C++ ->常规 ->调试信息格式,这里设置为 图2图22.项目 ->属性 ->配置属性 ->连接器 ->调试 ->生成调试信息 设置成图3图33.C/C+原创 2021-01-14 11:41:34 · 1658 阅读 · 0 评论 -
OpenCV Waitkey()使用
OpenCV Waitkey()使用int waitKey(int delay=0)waitKey()函数的功能是不断刷新图像,频率为delay,单位是ms,返回值为当前键盘按下的值,没有按键时返回-1.显示图片和视频时,会在imshow()时,通常会在后面加上while(cvWaitKey(n)==key)为大于等于0的数即可,那么程序将在此处循环运行直到按键响应为key时之后继续。delay:为0时,则会一直显示这一帧,”delay“,在显示视频和摄像头时有用,用于设置在显示完一帧图像后程序原创 2020-12-21 17:30:13 · 3396 阅读 · 2 评论 -
opencv2 使用鼠标绘制矩形并截取和保存矩形区域图像
一是监控鼠标操作,鼠标点击,移动,松开,然后通过mouse_event识别判断出那一种鼠标的操作,根据不同的操作然后进行处理,二是在主函数中加入鼠标的回调函数,将鼠标操作与程序的窗口绑定。第一节 函数介绍暂时只接触了两个关于opencv2鼠标响应操作的函数,下面分别介绍一下:1.1 回调函数opencv2.4.5中,提供的鼠标回调函数是 setMouseCallback,函数声明如下:C...原创 2019-04-26 17:00:27 · 2053 阅读 · 0 评论 -
MFC - 删除指定文件夹
// 删除指定的文件夹 2 void DeleteDirectory(CString strDir) 3 { 4 if (strDir.IsEmpty()) 5 { 6 RemoveDirectory(strDir); 7 return; 8 } 9 10 //首先删除文件及子文件夹 11 CFileFin...原创 2019-04-24 11:05:47 · 656 阅读 · 0 评论 -
CString与double互相转化
1.double转化为CStringhttp://www.sowsoy.com/topics-410.htmlC++中doulbe/float/int转为CString方法在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明: %c 单个字...原创 2019-06-06 13:56:07 · 6061 阅读 · 0 评论 -
C/C++ 计算程序片段运行时间
double time0 = static_cast<double>(getTickCount()); //要计算的程序运行时间代码 ... time0 =((double)getTickCount() - time0)/getTickFrequency(); cout<<"yunxing time :"<<time0<<end...原创 2019-06-11 11:32:53 · 527 阅读 · 0 评论 -
回调函数中使用MFC类的成员或对话框控件的简单方法
在MFC的很多程序中,常常需要在回调函数中调用MFC类的类成员变量、类成员函数,亦或者对话框控件的句柄。由于回调函数是基于C编程的Windows SDK的技术,而类成员又有this指针客观条件限制…所以在回调函数中不能够直接访问类成员,或者操纵控制MFC对话框的控件。虽然可以把回调函数设为类的静态成员函数,以便消除this指针的限制,但诸多不便(比如只能访问静态成员等)仍让人不能够顺畅访问类成员...原创 2019-06-24 15:07:38 · 486 阅读 · 0 评论 -
C#与C++通信
C#与C++相互发送消息C#端:namespace CshapMessage{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { IntPtr hwnd; ...原创 2019-07-24 16:42:38 · 2296 阅读 · 0 评论 -
C/C++中如何计算程序运行的时间
一个程序的功能通常有很多种方法来实现,怎么样的程序才算得上最优呢?举个例子,如果实现同一个功能的两个程序,一个一点按钮就给出运行结果,而另一个则需要漫长的时间去等待,就像安装WINDOWS XP一样(呵呵,太夸张了吧),你会去使用哪个程序呢?毋庸置疑,最优程序的第一条法则就是:程序的运行速度要快。那么,既然一个程序能用多种方法来实现,我又如何知道哪种方法是最优的呢?有些程序是显而易见的,你把它运...原创 2019-04-26 16:06:30 · 464 阅读 · 0 评论 -
MFC C++知道当前日期,求昨天或前天的日期
获取当前时间:SYSTEMTIME sysTime;GetLocalTime(&sysTime);CString strFilePath ;//= DirectoryPath ;//_T("..\\CCDImages");strFilePath.Format(_T("%s\\%d_%d_%d"),DirectoryPath,sysTime.wYear,sysTime....原创 2019-04-26 16:02:47 · 3151 阅读 · 0 评论 -
C++系统编程,打开记事本、计算器,关机,打开文件、目录
一、打开记事本、计算器#include <stdlib.h>void main(){ system("notepad");//打开记事本 system("pause"); system("calc");//打开计算器 system("pause"); }二、开关机恶搞、打开文件、打开目录等#include<stdlib.h>原创 2018-12-05 14:19:12 · 3767 阅读 · 1 评论 -
MFC发送自定义消息-PostMessage,类似IOS中的通知
接收消息窗体,CMainFrame1、 首先在stdafx.h中定义消息:例如#indefine WM_MYMESSAGE (WM_USER+100)WM_MYMESSAGE是定义的宏2、定义消息处理函数。消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainFrame,则首先在CMainFrame.h声明消息处理函数。publi...原创 2019-01-18 15:23:33 · 516 阅读 · 0 评论 -
MFC C++ Cstring与string互转
CString 转换成string我用的vs2012------解决方案--------------------unicode:CString sz1 = L"abc";std::string sz2 = CT2A(sz1.GetBuffer()); //转化为非unicode.非unicode:CString sz1 = "abc";std::string sz2 = sz1....原创 2019-02-02 15:31:52 · 210 阅读 · 0 评论 -
C++中字符数组与string的相互转换
字符数组转化成string类型char ch [] = "ABCDEFG";string str(ch);//也可string str = ch;或者char ch [] = "ABCDEFG";string str;str = ch;//在原有基础上添加可以用str += ch;将string类型转换为字符数组char buf[10];string str("ABCDEFG"...原创 2019-02-02 15:33:39 · 545 阅读 · 0 评论 -
c 十进制数转十六进制
有3种方式实现,其中两种是使用系统函数,另一种是直接自己编写。使用系统函数实现要加入#include <stdlib.h>,自己编写则不需要这个头文件。下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。利用系统函数有char * itoa ( int value, char * str, int base );val...原创 2019-02-02 15:35:59 · 2263 阅读 · 0 评论 -
C++中int型与string型互相转换
本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,我只挑最简单易懂的,管他效率不效率的。int转stringint n = 0;std::stringstream ss;std::string str;ss<<n;ss>>str;string转intstd::s...原创 2019-02-02 15:40:04 · 815 阅读 · 0 评论 -
c++ 十进制、十六进制和BCD的相互转换
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; ///////////////////////////////////////////////////// // //功能:二进制取反 // //输入:const...原创 2019-02-02 15:41:21 · 1007 阅读 · 0 评论 -
MFC修改控件的字体大小和颜色
右键点击该对话框-> 类导向 -> 消息 ->双击添加WM_CTLCOLOR,就可以在Dlg类中看到函数OnCtlColor了。 HBRUSH CMFCTESTDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd,...原创 2019-02-14 10:11:21 · 1611 阅读 · 0 评论 -
MFC中CString与int、float、Char*的转换
一、引言:处理数据时,我们经常要用MessageBox来查看具体的数值,Debug处理时,也需要把数据转化为字符串类型数据后,才可以正常输出到Log文件中,从UI控件接收的字符串也需要转化为具体的数据后,才能在程序中进行运算处理。因此,字符串与数据间的相互转换在实际的编程过程中经常用到。二、转化实例 1,CString --&gt; int CString...原创 2019-02-14 10:16:48 · 1635 阅读 · 0 评论 -
MFC修改对话框的标题以及图标
一、对话框标题栏内容为静态直接在对话框属性“General”的“Caption”中修改。二、对话框标题栏内容为动态生成的在对应对话框的初始化函数OnInitDialog()中添加以下代码:CString title;title.Format("%d",Id);//在标题栏动态显示Id的值this->SetWindowText(title);三、对话框图标场景:Visual...原创 2018-12-05 14:01:42 · 8292 阅读 · 0 评论