![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MFC
我是是是是是西红柿
坚持做自己认为对的事情
展开
-
线程间通讯实例
简单实现了线程通讯,记录下,直接上代码。发送线程:#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 · 108 阅读 · 0 评论 -
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 · 854 阅读 · 0 评论 -
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 · 378 阅读 · 0 评论 -
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 · 614 阅读 · 0 评论 -
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 · 3378 阅读 · 0 评论 -
MFC 实现FTP服务器上传下载
事先搭建FTP服务器,上传下载端口新建MFC基于对话框程序,添加上传下载按钮。上传按钮CInternetSession * pInternetSession = NULL; CFtpConnection* pFtpConnection = NULL; //建立连接 pInternetSession = new CInternetSession(AfxGetApp原创 2016-12-21 15:44:51 · 8831 阅读 · 0 评论 -
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 · 990 阅读 · 0 评论 -
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 · 1038 阅读 · 0 评论 -
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 · 1202 阅读 · 0 评论 -
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 · 5074 阅读 · 3 评论 -
MFC CBitmapButton类的应用
最近遇到了给按钮设置样式的问题。我们都知道在我们用过的程序中,按钮是个很神奇的东西。有的按钮表面是这种样式,鼠标指上去就换一种样式,点下去是一种样式,点过后又是一种样式。其实,用CBitmapButton类完全可以实现。现在我们要实现一个效果,就是按钮显示,按钮按下时(鼠标别松),鼠标指向按钮,点击后失效。四种样式。IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,I原创 2016-11-25 11:02:13 · 777 阅读 · 0 评论 -
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 · 3329 阅读 · 0 评论 -
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 · 449 阅读 · 0 评论 -
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 · 1993 阅读 · 0 评论 -
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 · 6750 阅读 · 0 评论 -
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 · 2267 阅读 · 1 评论 -
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 · 1322 阅读 · 0 评论 -
关于二维码。
官网各版本: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 · 327 阅读 · 0 评论