- 博客(32)
- 问答 (1)
- 收藏
- 关注
原创 MFC 用对话框VMR_Capture类实现图像采集,抓拍
1.新建一个对话框取名摄像头2.在其中加入一个picture control控件,一个comb控件,一个button按钮。做成下图给picture control控件设置控制变量命名为my_device comb控件设置控制变量命名为mylist。3.准备好VMR_Capture.h文件和VMR_Capture.cpp文件,分别加入到头文件和源文件中
2016-11-19 14:59:23 981
原创 std::function相关用法
类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。这是比较官方的解释,最近在学习std::function的用法,看了一些示例后,记录一些自己的用法和理解。
2023-02-08 18:50:35 243
原创 工厂模式精简实现
记录一个工厂模式简单的实现,其中COrder是最基类。#pragma oncestruct IFactory{ virtual COrder* CreateOrder() = 0;};template<typename T>class CFactoryOrder :public IFactory{public: static IFactory* GetInstance() { static CFactoryOrder FactoryOrder; retu..
2022-05-05 21:13:44 394
原创 Bitmap的遍历
最近做需求通过win32sdk编程从系统拿Icon图,发现有些程序是没有256标准的图,但是系统会给出其他规格的图,比如128/48/32,但是整体是一个256*256的白图,只不过有效图在左上角。大概是下图黑框这样,我需要区分出这个图是不是这样的,所以对Bitmap做了256规格的遍历,也很形象的让人理解图的像素分布这里记录Bitmap像素的遍历方法#include <GdiPlus.h>#define EXTRALARGEICON_ITEM_WIDTH 256bool
2021-12-17 20:11:59 429
原创 线程间通讯实例
简单实现了线程通讯,记录下,直接上代码。发送线程:#define MY_SHELLMENU_MSG WM_USER+200int iCmd=0,iMinID=0;PostThreadMessage(nThreadID, MY_SHELLMENU_MSG, (WPARAM)iCmd, (LPARAM)iMinID);1.上面的线程id需要自己获取,你要发给哪个线程就是了。2.消息是自定义的3.icmd和iMinID可以是任意类型接收线程:while (true)
2021-09-28 21:26:40 103
原创 ListView控件的重绘相关
最近在做关于C++ ListView控件重绘相关的工作,记录一下重要的重绘逻辑这个先解释下它在不同框架(也不能这么说),不同地方的不同MFC:就是CListContrl类,这个封装的很好,做起来相对简单COM:对应的用法都在CommCtrl里面 以 ListView_开头,下面说的主要是COM这个编程相关,不过原理都是一样的直接上代码 case WM_NOTIFY: if (reinterpret_cast<LPNMHDR>(lParam)->hwnd
2021-09-06 12:09:18 439
原创 VC++ 关于VC6.0编译环境的数据断点调试
由于VC6.0这个编译环境比较老了,但是有好多老项目是用的,而且vc6转高版本,05,08,10,会有多多少少大大小小的问题。比如VC6.0是可以这样写的#define MAX_INDEX_NUM 10 VOID CSDN::Function(){ for(int i=0;i<MAX_INDEX_NUM;i++) { //do something } for(i=0;i<MAX_INDEX_NUM;i++) {
2021-03-29 20:59:20 924
原创 VC++ 使用StackWalker类打印当前运行堆栈信息
意义:作用在程序log模块或找一些模糊不清的bug,可以精确定位堆栈的运行。之前一直找这个找不到,从git上找到了StackWalker类分享。StackWalker.cpp#include "StackWalker.h"#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <windows.h>#pragma comment(lib, "version....
2021-03-25 13:01:04 798
原创 ubuntu 16.04 配置java环境变量
1. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html根据系统环境选择下载JavaSE 我这里是 linux x64 tar2.解压 解压后 mv jdk1.8.0_144 /opt/Java/jdk1.8.0_1443. vi
2017-10-09 14:16:19 400
原创 python pandas a+
import pandas as pdimport numpy as np#print data.__len__()data=pd.read_csv('2.csv',header=None)data1=data.valuesprint np.shape(data1)[0] #row_countprint type(data1) #typeadd_row=['a'
2017-09-11 14:42:47 368
原创 python mysql
db=mysql.connect("localhost", user, pwd, database) cursor=db.cursor() try: cursor.execute(sql_str) db.commit() db.close() return True except: return
2017-09-08 17:03:07 216
原创 python pandas
import pandas as pddata=pd.read_csv(csv_path,header=None)print data.values #print currentdata1=data.valuesdata1[1,6]='aaa'print data1 #print againpd.DataFrame(data1).to_csv(saveto_csv_path,head
2017-09-07 09:52:41 353
原创 pugixml使用
头文件pugixml.hpp链接库pugixml pugi::xml_document doc; /*if(!doc.load_buffer("",0)) pugi::xml_document doc; if (!doc.load_file(“文件路径”, pugi::parse_default, pugi::encoding_utf8))//加载xml文件,
2017-08-09 17:31:36 3322
原创 libxls库的使用
头文件xls.h链接库xlsreader xlsWorkBook *pWb=NULL;//文件 xlsWorkSheet *pWs; //Sheet xlsRow *row_current;//提取行 int r,c; const char b[]="UTF-8";//编码方式 pWb = xls_open("文件路径",b);//这里如果打不开 ,在路径正确的同时,
2017-08-09 17:17:00 6345 2
原创 zbar+opencv配合实现条码识别
1.安装opencv2.安装zbar3.注意程序中链接库配置#include #include #include #include #include #include using namespace std;using namespace cv;using namespace zbar;int main(int argc, char **argv) { I
2017-08-02 16:08:39 2692 2
原创 vim 配置.vimrc
文件写入" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian." Uncomment the next line to make Vim more
2017-08-02 15:57:01 256
原创 MFC 文件操作
1.压缩HZIP hz = CreateZip("c:\\simple1.zip",0); ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp"); ZipAdd(hz,"znsimple.txt", "c:\\simple.txt"); CloseZip(hz);2.解压缩HZIP hz = OpenZip("c:\\stuff.zip",
2016-12-29 11:23:19 605
原创 MFC 实现FTP服务器上传下载
事先搭建FTP服务器,上传下载端口新建MFC基于对话框程序,添加上传下载按钮。上传按钮CInternetSession * pInternetSession = NULL; CFtpConnection* pFtpConnection = NULL; //建立连接 pInternetSession = new CInternetSession(AfxGetApp
2016-12-21 15:44:51 8777
原创 md5加密算法
.cpp文件#include "stdafx.h"#include "MD5Crypt.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif#define S11 7#define S12 12#define S13 17#define S1
2016-12-20 16:51:48 365
原创 MFC ado操作mdb数据库
1.新建基于对话框应用程序找到stdafx.h文件 在末尾加入#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")2.找到对话框app类初始化函数InitInstance()其中加入::CoInitialize(NULL);::CoUnin
2016-12-19 11:48:13 3349
原创 MFC copydata实现两个进程间信息传递。
1.新建Send基于对话框工程。添加按钮,标题改为“发送”。2.找到对话框头文件,定义结构体。typedef struct{ char Name[20]; UINT Age;}Student;3.新建Receive基于对话框工程。找到对话框头文件。定义同样的结构体typedef struct{ char Name[20]; UINT Age;}Student;4.双
2016-12-09 13:40:42 1028
原创 MFC 动态链接库的生成调用。
1.新建MFC DLL程序。2.在项目中添加.CPP文件 名字随意。 我的是txt在txt.cpp中写入extern "C" __declspec(dllexport) void button1(void){点击按钮要做的事。}3.右击txt.cpp点编译,编译成功就行。4.在自己的DLL项目Debug文件夹中找到TxtDll.lib和TxtDll.dll。复制粘贴到 新的对
2016-12-08 15:50:11 1195
原创 MFC 对话框 关于exe文件绝对路径的获取,截获。
1.获取exe文件的绝对路径TCHAR pszFileName[MAX_PATH]; GetModuleFileName(NULL,pszFileName,MAX_PATH); CString psFileName; psFileName=pszFileName;2.把*.exe去掉改成另外的格式名字。psFileName=psFileName.Left(psFileName.R
2016-12-07 17:13:37 439
原创 MFC对话框实现txt文件读写,及时间差判断
1.MFC对话框加两个按钮,一个写入,一个读取。双击写入按钮。 char* pszFileName="C:\\Users\\Administrator\\Desktop\\xierutxt\\Debug\\myfile.txt";//新建文件路径 CStdioFile myFile; CString str; //获取系统时间 CTime tm; tm=CTime::Get
2016-12-07 13:51:17 1981
原创 关于二维码。
官网各版本:http://www.qrcode.com/zh/about/version.html自己拓展版本。纠错类型自己选择更准确。int RS_BLOCK_TABLE[78][6] = { // L =1 // M =0 // Q =3 // H =2 // 1 {1, 26, 19,0,0,0}, {1, 26, 16,0,0,0}, {1
2016-12-03 11:02:02 324
原创 MFC 如何使用线程函数。
1.新建对话框程序(假如你的工程名叫Child),在public中定义线程函数static UINT Thread1(void *pArg);2.在.cpp中写线程函数(你希望它做什么,一般用作循环,你的对话框运行是主线程,它是子线程,两者互不干扰让程序更流畅)UINT CChildDlg::Thread1(void *pArg) { CChildDlg *dlg1=(CChildD
2016-12-03 10:58:58 1310
原创 MFC对话框 picture控件添加位图,位图拉伸,适应picture
1.事先准备好位图。一定要位图。位图。2.在对话框中添加picture控件,设置type为bitmap,将其ID改为IDC_STATIC1(不改不行)。然后为picture添加控制变量PT1。3.在.cpp中找到onpaint()函数加入如下代码。 CDC dcMemory1; CBitmap wtj_bitmap1; BITMAP bmInfo1; CDC *pDC=PT1.G
2016-11-25 11:55:52 3297
原创 MFC CBitmapButton类的应用
最近遇到了给按钮设置样式的问题。我们都知道在我们用过的程序中,按钮是个很神奇的东西。有的按钮表面是这种样式,鼠标指上去就换一种样式,点下去是一种样式,点过后又是一种样式。其实,用CBitmapButton类完全可以实现。现在我们要实现一个效果,就是按钮显示,按钮按下时(鼠标别松),鼠标指向按钮,点击后失效。四种样式。IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,I
2016-11-25 11:02:13 765
原创 MFC 主对话框最小化到托盘,托盘点击还原主对话框。
1.将主对话框资源属性Minimize Box设置为true,这个属性显示对话框的最小化按钮。2.最小化到托盘。(1)首先要了解,你任务栏右下角的托盘都是图标,所以最小化到托盘建议添加一个Icon资源。(2)到托盘的函数需要自己重构。先宏定义#define WM_SHOWTASK WM_USER+1在protected中添加函数LRESULT OnShowTask(WPAR
2016-11-22 11:33:08 2238 1
原创 MFC实现子对话框间切换。
1.新建MFC工程zidlg,添加四个对话框资源,分别为它们新建类CChildDlg1,CChildDlg2,CChildDlg3,CChildDlg4。设置每个对话框的style为child型。2.在zidlg头文件中加入四个类的头文件,并为他们添加类的对象 dlg1,dlg2,dlg3,dlg4。3.在主对话框中添加四个button(分别控制每个对话框的调出),为它们设置控制变量b
2016-11-21 13:40:04 6713
原创 MFC 对话框 运用mysql数据库 制作登录界面,记住密码功能
首先MFC连接mysql数据库的配置百度配好,这里不再解释。注意x64和x32配置时是有区别的。x64的系统libmysqld.dll文件要放到工程文件X64\DEBUG中才能配置好数据库连接。1.新建MFC工程 命名为登录界面。在资源视图添加对话框资源IDD_DIALOG1给该对话框定义一个dlg类2.打开该对话框资源加入控件做成下图3.打开dlg.h文件在pub
2016-11-19 15:47:35 5021 3
空空如也
VC下如何获取windows快速访问的列表
2021-08-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人