- 博客(38)
- 收藏
- 关注
原创 可以通过PostMessage发送自定义的消息到指定窗口,并与该窗口类的接口绑定
其中,hWnd为指定窗口的句柄,WM_MY_MESSAGE为自定义消息的标识符,wParam和lParam为自定义消息的参数。通过以上步骤,就可以在不同窗口之间发送自定义消息并进行相应的处理了。
2023-04-01 19:23:59 604
原创 AFX_MANAGE_STATE(AfxGetStaticModuleState())的使用
AFX_MANAGE_STATE(AfxGetStaticModuleState())的使用
2023-02-26 10:26:30 201
原创 错误 84 error C2065: “IDD_DIALOG_XXX”: 未声明的标识符
在报错文件头部添加#include “Resource.h” 就可以解决了
2022-03-07 17:24:27 657
原创 拷贝构造与拷贝赋值区别
拷贝构造函数被用来“以同型对象初始化自我对象”,拷贝赋值操作符被用来“从另一个同型对象中拷贝其值到自我对象”:class Widget{public: Widget(); //default构造函数 Widget(const Widget& rhs); //copy构造函数 Widget& operator=(const Widget& rhs);//copy assignment操作符
2022-01-29 19:38:42 1159
原创 C++接口隔离原则
class Bird{public: virtual~Bird() = default; virtual void fly() = 0; virtual void eat() = 0; virtual void run() = 0; virtual void tweet() = 0;};class Sparrow :public Bird{public: virtual void fly() override{ //... } virtual void ea.
2021-11-01 20:25:37 371
原创 C++依赖倒置原则
class Ireader{public: virtual string Getcontents() = 0;};class Book : public Ireader{public: virtual string Getcontents() { return "读本书!"; }};class NewsPaper : public Ireader{public: virtual string Getcontents() { return "读报纸!"; }};.
2021-10-31 14:06:35 261
原创 警告【不是所有的控件路径都返回值】最终会返回什么结果呢
bool ReturnTest1(int i){ if (i == 1) return true; else if (i == 2) return false; //return true;}bool ReturnTest2(int i){ if (i == 1) return false; else if (i == 2) return true; //return flase;}int main(){ bool bIs1 = ReturnT.
2021-10-20 09:19:07 476
原创 std::vector查找指定元素C++
if (std::find(vector.begin(), vector.end(), item) != vector.end()){ //查到指定元素时的操作}else{ //未查到指定元素时的操作}
2021-10-11 08:48:07 4062
原创 std::set和std::vector首尾元素访问
一般情况下,set通过迭代器访问元素,而vector既可通过下标,又可通过迭代器。但通过指针,可以实现访 问特定元素,而set和vector略有不同。set:访问首元素,*st.begin();访问尾元素,*(--st.end());vector:访问首元素,vt,front()或*vt.begin();访问尾元素,vt.back()或*(--vt.end())或*(vt.end()-1);...
2021-09-27 15:22:53 1500
原创 长度按某个整数倍数取整
void ChangeVlaueToFixedVlaueTimes(int& dSrc, const int& dTimes){ int dRem = dSrc - floor(dSrc / dTimes)*dTimes; if (dRem > 1.0e-2) dSrc = floor(dSrc / dTimes)*dTimes + dTimes;}
2021-09-23 20:15:52 137
原创 C++单例模式
class singleton{private: singleton(){ na = 1; nb = 2; }; static singleton* pInstance;public: static singleton* GetInstance() { if (pInstance == NULL) pInstance = new singleton(); return pInstance; } static void ...
2021-09-08 19:37:52 81
原创 C# FileInfo查找文件包含字符个数
string result = string.Empty;string path = @"D:\C#\ConsoleApplication1\ConsoleApplication1\stdafx.h";FileInfo file = new FileInfo(path);result = file.OpenText().ReadToEnd();int i = Regex.Matches(result, "#include").Count;
2021-08-29 16:40:59 211
原创 子对话框镶嵌填充Static Text控件,并对控件大小自适应子对话框大小,而后对控件位置进行调整
mpBaseData :对话框1mpForceGrid :对话框2pHoldBase :static1控件pHoldForce :static1控件CWnd* pHoldBase = GetDlgItem(IDC_STATIC_BASE); //static1控件CWnd* pHoldForce = GetDlgItem(IDC_STATIC_FORCE); //static2控件if (pHoldBase && pHoldForce){ if (mpBa
2021-05-09 10:22:02 111
原创 工具接口
//int转字符串static CString int2Str(int iVal){ CString sText; sText.Format(_T("%d"), iVal); return sText;}//double转字符串,iDot为小数点位数static CString double2Str(double dVal, int iDot){ CString sText; sText.Format(_T("%.*f"), iDot, dVal); //iDot替换f前面的* re
2021-03-22 10:50:03 73
原创 MFC—ClistBox控件重绘
本篇文章参考自https://blog.csdn.net/qq_36568418/article/details/102921788?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161251566116780299078381%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&r
2021-02-07 19:29:57 812 1
转载 Effective C++:条款08:别让异常逃离析构函数
(一)先看下面的代码:class Widget {public: ...; ~Widget();}; void doSomething() { vector<Widget> v;}如果析构函数会抛出异常,当doSomething函数结束的时候,会调用n次Widget的析构函数,每次都抛出异常的话,程序会过早结束或出现不明确的行为!也就是说:当我们的析构函数必须执行一个动作!而该动作可能会在失败时抛出异常。所以必须要解决!再看下面的代码:<pre class="c
2020-12-30 19:05:30 100
原创 MFC读写对话框
void OnBnClickedSave(){ CString defExe = _T("json"); CString defFileName = _T("*.json"); CString defFilter = _T("数据文档(*.json)|*.json|"); CFileDialog fd(FALSE, defExe, defFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, defFilter); CString strSavePa
2020-12-05 15:07:41 188 1
原创 C++ 堆栈、堆积、全域、区域静态
在C++ 中,有四种方法可以产生一个对象。第一种方法是在堆栈(stack)之中产生它:void MyFunc(){ CFoo foo; // 在堆栈(stack)中产生foo 对象 //...}第二种方法是在堆积(heap)之中产生它:void MyFunc(){ //... CFoo* pFoo = new CFoo(); // 在堆(heap)中产生对象}第三种方法是产生一个全域对象(同时也必然是个静态对象):CFoo foo; // 在任何函数范围之外做此动作第四种
2020-11-28 14:35:24 229
原创 C++基类指针指向的子类对象析构内存泄漏问题
只需要把父类和子类的析构函数定义成虚函数class A{public: A(){ a = new int; cout << "A()" << endl; } virtual ~A(){ delete a; cout << "~A()" << endl; }private: int *a;}class B : public A{public B(){ b = new int; cout << "B
2020-11-10 20:04:04 479
原创 MFC控件重叠显示问题
IDC_CHECK_NODEDOMAIN :需要在上侧显示的控件IDC_STATIC1 :要被控件IDC_CHECK_NODEDOMAIN覆盖的控件//控件重叠问题GetDlgItem(IDC_CHECK_NODEDOMAIN)->ModifyStyle(0, WS_CLIPSIBLINGS);GetDlgItem(IDC_CHECK_NODEDOMAIN)->ShowWindow(SW_HIDE);GetDlgItem(IDC_STATIC1)->ModifyStyle(0,
2020-11-01 09:47:33 1073
原创 MFC对控件动态移动及隐藏部分控件
此代码适用于对已经手动拖拽布置好的控件修改,涉及到对已有控件的隐藏及其他控件移动到被隐藏控件的位置上。 //控件排布时需要隐藏掉的控件 GetDlgItem(IDC_STATIC_BEAM2)->ShowWindow(SW_HIDE); //... //... //获取需要隐藏掉控件的边框尺寸 CRect rect; GetDlgItem(IDC_STATIC_BEAM2)->GetWindowRect(&rect); double dH = rect.Heigh
2020-11-01 09:37:36 955
原创 MFC动态修改Static Text控件caption
方法1:直接通过Static控件ID修改一SetDlgItemText(IDC_STATIC,_T(“字符串”);方法2:直接通过Static控件ID修改二GetDlgItem(IDC_STATIC)->SetWindowText(_T(“字符串”));UpdateData(FALSE);方法3:通过与Static控件ID绑定的控件变量修改GetDlgItem(IDC_STATICTITLE)->SetWindowText(_T(“字符串”));UpdateData(FALSE);
2020-11-01 09:09:22 1955
原创 派生CListCtrl类实现Report样式可编辑的功能
EditReportListCtrl.h#pragma once#include "afxcmn.h"#define MLSM_ITEMCHANGED (WM_USER + 200)class EditReportListCtrl : public CListCtrl{public: EditReportListCtrl(); virtual ~EditReportListCtrl(); virtual BOOL PreTranslateMessage(MSG* pMsg) over
2020-10-29 09:42:14 231
转载 MFC的ON_NOTIFY / ON_NOTIFY_REFLECT / ON_NOTIFY_REFLECT_EX
ON_NOTIFY : Comes from a child control to the parent. This macro goes in the parent’s message map.ON_NOTIFY是子控件把消息发送给父窗口,由父窗口来处理消息,消息处理函数在父控件的类里面。ON_NOTIFY_REFLECT: Comes from a child control, but is “reflected” back to the child (by the parent)so the ch
2020-10-29 09:31:15 1094
原创 C++实现一个精度设置的类
class StBase_Ex StPrecision{protected: double md ; //double的比较精度 double mdPt ; //点、矩阵的比较精度 double mdvec; //向量的比较精度 double mdDis ; //距离误差 double mdAngle; //角度误差
2020-10-15 19:53:36 83
转载 C++解析函数返回char *p与char p[]类型区别
首先来看一道题目:#include "stdio.h"char *get_string_1(){ char p[] = "hello world!"; return p;}char *get_string_2(){ char *p = "hello world!"; return p;}int main(){ char *p; p = get_string_1(); printf("get_string_1:%s\n",p);
2020-06-12 20:27:46 193
原创 时间复杂度耗时时间的大小排序
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
2020-02-12 14:13:49 1114
原创 泛型算法搜索算法
使用泛型算法包含头文件 #include<algorithm>以vector存储数列为例四种搜索算法:1. find()用于搜索无序集合中是否存在某值搜索范围由iterator[first,last)标出。如果找到目标,find()会返回一个iterator指向该值,否则返回一个iterator指向last。2.binary_search用于有序集合的搜索如果搜索到目标,返...
2020-01-05 16:43:30 248
原创 解决win10系统飞秋不在线问题
一次装完win10系统发现自己的飞秋总是收不到别人的消息,发送者显示本人飞秋不在线,必须本人先发送消息才能接收对方的消息,关闭防火墙后问题消失了,但这不是解决问题优选方法,毕竟防火墙是防御网络攻击的屏障。那么如何解决呢?第一步:打开Windows防火墙:设置—>网络和Internet–>Windows防火墙第二步:打开应用或功能通过Windows防火墙:将飞秋对应位置打√。O...
2019-12-21 09:17:05 7479
原创 VS使用预处理指令#pragma region折叠代码
简介pragma region 是一个Visio Studio Code Editor中的命令,来定义可以扩展和收缩的代码区域的开头和结尾,可以用来收缩或者展开一段代码。pragma region namepragma endregion comment12参数comment(optional): 本段代码的注释,可选name(optional): 代码段的名称,可选注解pra...
2019-12-20 20:12:43 530
原创 派生类调用基类的构造函数方式一览
基类写了默认的构造函数,子类未明确调用 :(√) :这个情况,子类就可以默认调用到默认的构造函数基类写了的默认构造函数,子类明确调用 :(√) :这个情况,子类就可以默认调用到默认的构造函数基类没有写默认的构造函数,子类明确调用 : (√) : 这个情况,系统会给基类生成一个默认的构造函数,这样,子类就可以默认调用基类没有写默认的构造函数,子类未明确调用 : (√):这个情况,系统会给基类生...
2019-12-20 20:03:48 8695 2
原创 Visual Studio 使用Code Analysis代码分析
Visual Studio 使用Code Analysis代码分析什么是静态代码分析?什么时候使用支持平台支持Visual Studio版本如何使用?什么是静态代码分析?Visual Studio的静态代码分析功能对代码执行静态代码分析,以帮助开发人员根据Microsoft的规则(主要针对编写代码的最佳做法)来识别潜在的设计,全球化,互操作性,性能,安全性以及许多其他类别的潜在问题,而且Vis...
2019-12-17 15:13:23 9028
原创 避免分区重复读写造成分区损坏数据丢失的一个办法
不知道大家有没有遇到过长时间重复读写一个分区时磁盘损坏数据丢失的烦恼呢?今天跟同事学了一个小技巧,就是巧妙利用mklink。 mklink是Windows平台下的一个类似于linux下In的命令,其作用是创建一个链接,通过链接到某个目录或文件的“类似快捷方式”。可以将经常重复读写文件放到一个不经常使用的分区Y(建议单独创建一个分区),在正在应用的分区X中通过链接方式访问不经常使用的分区中的文件...
2019-11-29 19:47:05 457
原创 子类调用父类的构造函数方式一览
首先要了解子类调用构造函数过程:父类构造函数–>子类构造函数1.父类有默认构造函数,子类未显示调用时,子类自动调用父类的默认构造函数;#include <iostream>using namespace std;class Father{public: Father() { cout << "父类默认构造函数!\n"; }};class ...
2019-11-10 17:11:15 7423
原创 CSDN开篇之作
CSDN开篇之作 今天看到同事有在CSDN做笔记,感觉比自己写笔记要有效果,主要是因为所做笔记不再是自己一人所看,草草记完了事,只能是当时自己看懂,过后却忘记当时自己的想法。为了给所用码农看懂,也加深自己的印象,决定从现在开始将笔记记录到CSDN。...
2019-11-10 16:16:26 117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人