![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC++
tanyouliang
努力不一定会成功,但不努力一定不会成功,态度决定一切。
展开
-
二进制显示文件
void CProcessDlg::OnHexShow() { // TODO: Add your control notification handler code here CFile file; long m_lFileLength; long lPos; long lOffset = 0; int m_nPerLineBytes = 16; unsigned原创 2012-04-08 13:00:24 · 1492 阅读 · 1 评论 -
VC项目中使用图片资源
不将图片作为资源加载到工程中,而是直接使用:示例:HANDLE handle = LoadImage(NULL,"C:\\UserData\\image.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);m_Bitmap.SetBitmap((HBITMAP)handle);HANDLE LoadImage(HINSTANCE hinst,LPC原创 2012-10-24 16:43:53 · 1760 阅读 · 0 评论 -
VC++快捷方式
将多行不规则的代码对齐:Alt+F8将多行代码整体向左移动:Ctrl+Shift+M将多行代码整体向右移动:Tab弹出对话框的属性窗口:Enter将光标移动到需要检测的括号前面,按Ctrl+]或Ctrl+E.如果当前有匹配的括号,光标会跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出警告声。使用Ctrl+]查看括号是否对应,是在代码都正确的情况下完成的。如果前面的程序存在原创 2012-10-24 17:16:28 · 552 阅读 · 0 评论 -
VFW视频捕捉流程(摄像头)
在VC++上使用VFW需要加入对vfw32.lib的引用。在中有一个AVICap窗口类,负责视频和音频硬件沟通,并把视频捕捉的数据保存为AVI文件,这个类是基于消息的。(1)引用头文件,导入库文件#include "vfw.h"#pragma comment(lib,"vfw32")(2)创建一个线程,在其中调用capCreateCaptureWindow创建视频捕捉窗口。下面原创 2012-10-25 17:11:30 · 5947 阅读 · 0 评论 -
新型打开文件并将内容显示到编辑框的对话框
CString strPath,strText; char filename[BUFSIZ]; memset(filename,0,sizeof(filename)); OPENFILENAME ofn; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = this->原创 2012-10-26 17:21:11 · 1594 阅读 · 0 评论 -
VC++查找替换对话框
(1)设置全局变量 int curpos; int pos; CFindReplaceDialog *pFindReplaceDlg;(2)为了使父窗口知道查找/替换请求,必须使用RegisterWindowMessage函数,它的返回值是应用实例唯一的消息号。static UINT WM_FINDMESSAGE = ::RegisterWindowMessage(FIND原创 2012-10-26 14:47:08 · 2157 阅读 · 0 评论 -
VC++字体和颜色对话框
字体对话框: CFont font; CFont *pFont = m_ctrlEdit.GetFont(); LOGFONT logfont; pFont->GetLogFont(&logfont); CFontDialog fontDlg(&logfont); if(fontDlg.DoModal() == IDOK) { if(font.m_hObject原创 2012-10-26 17:05:22 · 3067 阅读 · 0 评论 -
操作ACCESS的类CADOConn
// ADOConn.h: interface for the CADOConn class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_ADOCONN_H__6FC87078_9BAB_4B1F_B205_E932FD387E09__INCLUDED_)原创 2013-04-11 16:13:20 · 1957 阅读 · 0 评论 -
数据转换
/************************************************************************函数名: ByteCStringToDec作 者: 谭友亮(Charles Tan)日 期: 2013-2-18作 用: 将十六进制字符串(高位字节在后面:如1F 55, 即0x551F)转换为十进制形参数: CString s原创 2013-04-11 16:20:28 · 675 阅读 · 0 评论 -
商店管理系统源代码(一)
// SalesManagementSystemDlg.h : header file//#if !defined(AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7E_8FEF_84A37882625E__INCLUDED_)#define AFX_SALESMANAGEMENTSYSTEMDLG_H__105B9A75_F845_4C7原创 2013-04-12 15:01:21 · 3446 阅读 · 0 评论 -
VC 创建具有提示功能的工具栏
类CToolBar的对象是带有一行位图按钮和可选分隔线的控件条。这些按钮可以像普通按钮、核选按钮或单选按钮那样动作。Visual C++提供了两种创建一个工具条的方法。要使用资源编辑器(ResourceEditor)创建一个工具条,应遵循下面的步骤: 1. 创建一个工具条资源。 2. 构造CToolBar对象。 3. 调用Create(或CreateEx)函数来创建Window原创 2013-05-08 14:56:29 · 2065 阅读 · 0 评论 -
在软件开发过程中出现的异常:警告warning、错误error
1.编译我的工程时候,出现fatal error C1010: unexpected end of file while looking for precompiled header directive解决方法:在文件开头添加: #include "stdafx.h" 2.'CDataStream::GetBytes' : illegal call of non原创 2013-11-08 10:15:11 · 3033 阅读 · 0 评论 -
MFC中消息循环机制
在MFC中通过重载CWnd类中的虚拟函数PreTranslateMessage,可以改变消息控制流程。只有经过消息队列的消息才受PreTranslateMessage的影响,使用SendMessage函数发送或其他类似方式直接向窗口发送消息是不经过消息队列的。在消息处理函数中,不能处理WM_CHAR消息。SetWindowText会发送WM_CHAR字符消息。GetMessage在原创 2015-09-01 12:38:52 · 8201 阅读 · 0 评论 -
虚拟键码和windows消息分析
大多数虚拟键码的名称在WINUSER.H表头档案中都定义为以VK_开头。如下#ifndef NOVIRTUALKEYCODES // begin_r_winuser /* *Virtual Keys, Standard Set */#define VK_LBUTTON 0x01#define VK_RBUTTON 0x02#d原创 2015-09-01 11:46:05 · 1793 阅读 · 0 评论 -
在MDI主窗口中设置图像背景
1.创建一个多文档应用程序,工程名为NoChild。2.导入背景位图IDB_CAR3.添加新的类CBgWnd。基类选择generic CWnd类。4.重载CBgWnd类的OnEraseBkgnd(CDC *pDC)函数。BOOL CBgWnd::OnEraseBkgnd(CDC* pDC) {// TODO: Add your message handler code he原创 2015-10-09 11:08:16 · 1607 阅读 · 1 评论 -
VC++选择目录对话框
BROWSEINFO br; ITEMIDLIST *pItem; char Path[MAX_PATH]; br.hwndOwner = this->GetSafeHwnd(); br.iImage = 0; br.lParam = 0; br.lpfn = 0; br.lpszTitle = "请选择路径"; br.pidlRoot = 0; br.pszD原创 2012-10-23 17:42:50 · 898 阅读 · 0 评论 -
VC++实现监视系统的键盘操作(2) 创建记录键盘动作的全局钩子DLL
全局钩子函数必须以DLL(动态连接库)为载体进行封装,VC++6.0中有三种形式的MFC DLL可供选择,即Regular DLL with MFC statically linked(标准静态链接MFC DLL)Regular DLL using shared MFC DLL(标准动态链接MFC DLL)MFC Extension DLL(using shared MFC DLL)(原创 2012-10-24 13:07:33 · 3426 阅读 · 0 评论 -
VC++实现监视系统的键盘操作(3)调用键盘钩子DLL
1.新建MFC AppWizard(exe),工程名为KeyLog.2.创建Single Document.3.将前面编译后生成的KeyHookDll.lib拷贝到当前工程文件夹,将KeyHookDll.dll拷贝到Debug中,将前面工程中的KeyHookDll.h拷贝到当前工程文件夹。4.用Add Files to Project,将KeyHookDll.h添加到当前工程,并在视图原创 2012-10-24 14:01:19 · 1948 阅读 · 1 评论 -
VC++中打开文件对话框和保存文件对话框
CString filePath; char szFilter[] = {"All Files(*.*)|*.*||"}; CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL); if(dlg.DoModal() == IDOK) { filePath =原创 2012-04-08 18:47:24 · 15265 阅读 · 0 评论 -
汽车通讯数据处理(CAN)
将下面的数据:55 AA 00 00 00 00 80 00 07 E0 08 01 3E 00 00 00 00 00 00 55 AA 00 00 00 00 80 00 07 E8 08 01 7E 00 00 00 00 00 00 55 AA 00 00 00 00 80 00 07 E0 08 01 3E 00 00 00 00 00 00 55 AA 00 00 00原创 2012-03-22 09:20:23 · 1729 阅读 · 0 评论 -
VC++读书笔记
1.MSGtypedef struct tagMSG{ HWND hwnd; //表示消息所属窗口 UINT message; //指定消息的标志符 WPARAM wParam; LPARAM lParam; //wParam、lParam指定消息的附加消息 DWORD time; //消息送到消息队列的时间 POINT pt; //鼠标的当前位置}M原创 2012-03-22 08:50:23 · 369 阅读 · 0 评论 -
MFC中句柄与指针
获得本应用程序的实例句柄:AfxGetInstanceHandle()获得窗口句柄:1.HWND hwnd = GetSafeHwnd();2.hwnd = AfxGetMainWnd()->m_hWnd;3.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) 4.HWND FindWindowEx(HWND h原创 2012-10-29 14:20:25 · 864 阅读 · 0 评论 -
VC++实现对Excel操作(3)
//保存Excel,我都是用的这个,以前直接用API实现的时候,总是会出现一些问题,比如只会保存一个Sheet等,但封装成类后没有出现过了void CMyExcel::SaveAs(CString strPath){ if(IsFileExist(strPath,FALSE) == TRUE) { DeleteFile(strPath); } MyBook.SaveAs(原创 2012-10-21 10:03:27 · 2760 阅读 · 0 评论 -
查找程序所在上一级目录中是否存在指定文件夹,不存在就建立,并在其中新建一个txt文件
WIN32_FIND_DATA fileFind; HANDLE hFirstFile; CString strFolder = "TargetFolder"; CString strCurrentDir,strForeDir; int flagFind = 0; CString strdir; char buf[MAX_PATH]; int nIndex; m原创 2012-10-22 09:36:38 · 2338 阅读 · 0 评论 -
VC++实现对Excel操作(1)
前段时间老大让我做一个项目,要用到Excel操作,将大批十六进制数据分析完数据结构后提取到Excel中,再进行一定处理,然后写工具转换为一定格式的txt文件,最后转换为DB文件。我也是头一次接触这个,先在网上查了些资料,然后进行总结,经过一段时间后,我将原来的对Excel的操作封装成类,结合网上的资料和自己一段时间的实践,才有这些结果,还在进一步完善,因为我是根据需求一步一步完善的。//下面是.h原创 2012-10-21 09:26:33 · 3023 阅读 · 1 评论 -
VC++实现对Excel操作(2)
CMyExcel::CMyExcel(){ strFilePath = _T("");}CMyExcel::~CMyExcel(){ COleVariant covFalse((short)FALSE); COleVariant covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR); MyRange.ReleaseDi原创 2012-10-21 09:33:53 · 3347 阅读 · 0 评论 -
VC++选择文件对话框实现
char szFilter[] = {"All Files(*.*)|*.*||"}; CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL); if(dlg.DoModal() == IDOK) { m_strFilePath = dlg.GetPathNam原创 2012-10-21 19:47:36 · 8125 阅读 · 0 评论 -
获取、设置文件属性和时间
WIN32_FILE_ATTRIBUTE_DATA wfad; CString strPath = "SystemTestDlg.h"; CString strInfo; ULONGLONG liFileSize; if(!GetFileAttributesEx(strPath,GetFileExInfoStandard,&wfad)) { AfxMessageBox原创 2012-10-22 11:17:30 · 2601 阅读 · 0 评论 -
VC++实现监视系统的键盘操作(1)
利用钩子函数你可以进行文字的转换(英译汉或汉译英)、记录程序事件、截获和处理键盘和鼠标输入等工作。Windows操作系统是以消息机制为基础的,它对系统输入的处理过程是:系统监控键盘和鼠标的动作,并把这些动作以消息的形式发给相应的应用程序,由应用程序自己进行处理。我们可以在系统把消息传送给应用程序的过程中截获并在自己处理完后再传送给应用程序,运行在操作系统级的钩子函数为我们提供了这个机制。原创 2012-10-24 13:04:35 · 4971 阅读 · 0 评论 -
VC++遍历指定目录下的所有文件
CFileFind fileFind; int i = 0; CString strdir = m_strDirPath + _T("\\*.*"); if(fileFind.FindFile(strdir,0)) { BOOL bRet = TRUE; while(bRet) { bRet = fileFind.FindNextFile();原创 2012-10-23 17:45:50 · 6064 阅读 · 0 评论 -
VC++获取磁盘相关信息
char szLogicalDriveStrings[BUFSIZ]; PCHAR szDrive; CString strError,strDiskCapacity; DWORD dwSectorsPerCluster,dwBytesPerSector,dwNumberOfFreeClusters,dwTotalNumberOfClusters; DWORD64 qwFreeBy原创 2012-10-23 17:48:57 · 5820 阅读 · 0 评论 -
MDI全屏显示窗体
RepositionBars(UINT nIDFirst,UINT nIDLast,UINT nIDLeftOver,UINT nFlag = CWnd::reposDefault,LPRECT lpRectParam = NULL,LPCRECT lpRectClient = NULL,BOOL bStretch = TRUE)nIDFirst //要重新定位并改变大小的控制条范围原创 2015-10-09 14:54:05 · 1071 阅读 · 0 评论