VC++
文章平均质量分 81
普通网友
这个作者很懒,什么都没留下…
展开
-
判断文件夹是否存在,及创建一个文件夹
#include #include #include using namespace std; //判断一个文件夹是否存在,如果不存在则创建这个文件夹 bool DirExist(const TCHAR *pszDirName) { WIN32_FIND_DATA fileinfo; TCHAR _szDir[_转载 2013-07-04 08:58:00 · 707 阅读 · 0 评论 -
VC++捕捉鼠标"移动"并画十字交叉线
1.目标功能: 在MFC中有专门的鼠标事件响应函数,如OnLButtonDown,OnLButtonUp,OnMouseMove等等。这些常规的鼠标事件响应函数对于我们的程序设计有着非常大的作用.。我的系统是一个基于对话框的数据采集并显示程序,采集到的数据在一个PICTURE中进行相关的数据绘制。其中有一个需要实现的功能是这个PICTURE控件要捕捉鼠标的移动并且采集到鼠标的原创 2013-07-19 11:30:29 · 3651 阅读 · 0 评论 -
VC中对话中实现右键菜单的状态控制
在类向导对话框中找到菜单对应的ID;添加对应的消息;实现如下图 statflag 为BOOL类型的变量;用于实现对菜单状态的控制原创 2013-08-19 17:50:03 · 702 阅读 · 0 评论 -
VC 实现菜单项选中效果
问题:一般情况下我们用UPDATE_COMMAND_UI来修改菜单的状态(enable/disable, check/uncheck, change text),但这个方法在一个基于对话框上的菜单却没有效果。void CTestDlg::OnUpdateFileExit(CCmdUI* pCmdUI) { pCmdUI->Enable(FALSE); pCmdUI->转载 2013-08-19 17:44:30 · 1464 阅读 · 0 评论 -
VC++ List Control 的具体用法实例
1. ListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”-----------原创 2013-08-21 10:12:45 · 944 阅读 · 0 评论 -
vc++HOOK详细讲解
消息钩子函数入门 Windows 系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是 Windows 系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生原创 2013-08-21 17:56:57 · 8754 阅读 · 0 评论 -
vc6.0中的鼠标消息与键盘消息详解
在Microsoft Windows 中,键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。当然,鼠标在今天的应用程序中比10年前使用得更为广泛。甚至在一些应用程序中,我们更习惯于使用鼠标,例如在游戏、画图程序、音乐程序,以及Web创览器等程序中就是这样。然而,我们可以不使用鼠标,但绝对不能从一般的PC中拆掉键盘。 相对于个人计算机的其他组件,键盘有非常久远的历史,它起源原创 2013-08-21 14:55:26 · 2244 阅读 · 0 评论 -
HOOKS的详细介绍!
hook是WINDOWS提供的一种消息处理机制,它使得程序员可以使用子过程来监视系统消息,并在消息到达目标过程前得到处理。下面将介绍WINNDOWS HOOKS并且说明如何在WINDOWS 程序中使用它。 =========================关于HOOKS======================使用HOOK 将会降低系统效率,因为它增加了系统处量消息的工作量。建议原创 2013-08-21 15:40:47 · 4140 阅读 · 0 评论 -
VC 获取控件在对话框中的坐标
VC如何获取对话框中控件的坐标GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因原创 2013-08-21 15:00:06 · 5317 阅读 · 2 评论 -
VC 添加对话框右键菜单方法
给对话框添加右键菜单有好多方法,下面简单介绍两种。一、响应WM_RBUTTONDOWN消息在响应函数中添加以下代码//右键菜单CMenu menu;menu.LoadMenu(IDR_MENU);ClientToScreen(&point);menu.GetSubMenu(0)->TrackPopMenu(TPM_LEFTALIGN|TPM_原创 2013-08-13 11:53:11 · 1238 阅读 · 0 评论 -
VC中给菜单项增加响应函数
如下:假如映射到CMainFrame //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnViewProperty(); afx_msg void OnSize(UINT nType, int cx, int cy);原创 2013-08-13 13:33:02 · 1306 阅读 · 0 评论 -
子对话框如何访问主对话框中的控件
在使用mfc的时候经常遇到自定义类访问主对话框控件的问题,例如自定义类中的方法要输出一段字符串到主对话框的EDIT控件、控制对话框的进度条等。 要在自定义的类中访问主对话框空间,须获得主对话的指针。主对话框的对象在app类的InitInstance()方法中声明。查看app类的cpp文件,在InitInstance()方法中有如下语句: CAppDlg dlg; m_p原创 2013-08-16 17:52:04 · 2154 阅读 · 0 评论 -
VC中获取CheckBox的状态
1、定义CButton* 类型的变量获取CheckBox的指针CButton *pButton;pButton = (CButton*)GetDlgItem(ID); //ID为CheckBox的ID2、获取其状态int i = pButton->GetCheck();//获得checkbox的点击状态,值只有0 1 2三种状态,点击后为非0值i得到的值就是原创 2013-08-16 17:58:15 · 8627 阅读 · 0 评论 -
TAB Control控件 的使用方法。
VC中使用TAB Control控件 假如我现在有个SDI程序,View是Form View,想在上面放个Tab Control,包含两个Page。现在让我们来看看应该怎样处理。 首先当然要增加一个Tab Control资源,然后利用Class Wizard,在View中增加一个Control变量。 接着建立两个对话框资源,别忘了把Style改为Child,Border改为None。然原创 2013-08-16 18:14:40 · 848 阅读 · 0 评论 -
VC中自定义消息的方法及步骤
第一种方法: 定义一个自定义消息号:const UINT WM_MYMESSAGE = WM_USER + n; // 自定义消息一般大于WM_USER 然后就可以为该消息添加映射了 相关类头文件中加处理函数定义:afx_msg LRESULT OnMyMessage ( WPARAM wParam, LPARAM lParam ); 相关实现文件中加入消息映射:O原创 2013-08-16 18:38:14 · 1030 阅读 · 0 评论 -
VC实现文件拖拽
使用过QQ的人都知道,只要把文件拖拽到消息框中就可以传送文件了。那么这种功能是如何实现的呢?其实很简单,只需要响应一个WM_DROPFILES消息就可以了。 在基于对话框的程序中,默认是没有这个消息的,按下Ctrl+W,弹出类向导对话框,选择Class Info标签,在Message fileter下拉列表中选择Window,然后再点击Message Maps标签,就出现WM_DROPF转载 2013-08-16 18:03:06 · 592 阅读 · 0 评论 -
vc高精度多媒体定时器的使用方法
在VC编程中,用SetTimer可以定义一个定时器,到时间了,就响应OnTimer消息,但这种定时器精度太低了。如果需要精度更高一些的定时器(精确到1ms),可以使用下面的高精度多媒体定时器进行代码优化,可以达到毫秒级的精度,而且使用方便。先要包含头文件"mmsystem.h"和库文件"winmm.lib"。vc高精度多媒体定时器的使用方法如下:#include "原创 2013-10-11 15:53:08 · 790 阅读 · 0 评论 -
VC 操作Excel 2007的基本操作!
// 变量的定义 _Application app; Workbooks books; _Workbook book; Worksheets sheets; _Worksheet sheet; Range range; LPDISPATCH lpDisp; COleVariant原创 2013-09-27 10:26:15 · 1340 阅读 · 0 评论 -
VC中调用EXECL模板生成新的Excel文档
TestExcel::Button1(){// TODO: Add your control notification handler code here// 声明所需要使用到的对象 _Application ExcelApp; Workbooks wbsMyBooks; _Workbook wbMyBook; Worksheets wssMysheets;原创 2013-09-27 11:43:11 · 1861 阅读 · 0 评论 -
VC中如何给对话框应用程序添加————————加速键
1、插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联2.Diaolog类里增加 HACCEL m_hAccelTable;3.在OnInitDialog()增加 m_hAccelTable=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINACCELERATOR)); /原创 2013-10-13 12:48:56 · 720 阅读 · 0 评论 -
C/C++中的日期和时间 TIME_T与STRUCT TM转换
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概原创 2013-10-18 10:05:26 · 582 阅读 · 0 评论 -
图像处理
利用VC实现图像的特殊显示效果经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有显示一些特殊效果的图像,比如前一阵子中央一套放的《长征》、目前中央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和"图像的雕刻效果",经过这些特效处理后的图像增强了观众们的视觉效果,它们看上去仿佛是使用3D技术作的,这也是为什么这种技术那么流行的原因吧。其实,我们完全可以用一些简原创 2013-10-18 10:27:53 · 6473 阅读 · 1 评论 -
VC/MFC Q&A 200409
问】如何判定剪贴板中有没有文本数据? 答】COleDataObject dataObject;dataObject.AttachClipboard();if(dataObject.IsDataAvailable(CF_TEXT)){.....//有文本数据}问】如何得到ComboBox的Edit句柄?答】CEdit *pEdit = (CEdit*)CCombo原创 2013-10-18 11:49:59 · 1831 阅读 · 0 评论 -
VC问题百问
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。原创 2013-10-18 12:05:30 · 982 阅读 · 1 评论 -
多线程编程技术开发资料
多线程编程技术开发资料 目录Win32 多线程的性能(1)... 1Win32 多线程的性能(2)... 10关于多线程的一些细节... 23用VC++5.0 实 现 多 线 程 的 调 度 和 处 理... 25一 多 任 务, 多 进 程 和 多 线 程... 25二 基 于MFC 的 多原创 2013-10-18 12:18:43 · 2584 阅读 · 0 评论 -
VC++ MFC文件操作
1.判断文件是否存在利用CFile类和CFileStatus类判断CFileStatus filestatus;if (CFile::GetStatus(_T("d://softist.txt"), filestatus)) AfxMessageBox(_T("文件存在"));else AfxMessageBox(_T("文件不存在"));利用CFile转载 2013-10-16 10:06:46 · 676 阅读 · 0 评论 -
WINNT & WIN2K下实现进程的完全隐藏——宿主程序
面对众多的计算机高手,考虑许久,终于还是决定出来献丑一下,文章内尽量使用最简洁易懂的词汇及例子来介绍,希望能够对一些初学与进阶者有所帮助。关于进程的隐藏,98下的例子数不胜数。WinNT/Win2K下的隐藏方法,西祠的高手shotgun在去年的6月就已经在网上发布出实例《揭开木马的神秘面纱》 ,我也多次拜读他的文章,对他的计算机水平及热心帮助朋友的作风十分敬佩。这里也可算是对shotgun的文原创 2013-10-18 12:06:53 · 635 阅读 · 0 评论 -
编写断点续传和多线程下载模块
概述 在当今的网络时代,下载软件是使用最为频繁的软件之一。几年来,下载技术也在不停地发展。最原始的下载功能仅仅是个“下载”过程,即从WEB服务器上连续地读取文件。其最大的问题是,由于网络的不稳定性,一旦连接断开使得下载过程中断,就不得不全部从头再来一次。 随后,“断点续传”的概念就出来了,顾名思义,就是如果下载中断,在重新建立连接后,跳过已经下载的部分,而只下载还没有下原创 2013-10-18 16:20:18 · 623 阅读 · 0 评论 -
VISUAL C++界面编程
[前言:]拥有美丽的外观,软件就成功了一半。界面由控件、工具栏、菜单、窗体等元素组成,对他们进行美化就能得到一个美丽的界面。让控件更醒目在ComboBox中改变列表框的宽度我们经常会使用到组合框,而组合框是是有2种功能的--下拉和列表。一般情况下,列表框的宽度和选择框是一样宽的,但是我们有些时候确实很需要把列表框的宽度变大,一便让我们能更好的看我们要选的东西。 为了能原创 2013-10-18 10:21:08 · 3255 阅读 · 0 评论 -
VC技术内幕笔记
第一天:WINDOWS应用程序一定要有WinMain函数,该函数用来完成一些特殊的任务,象创建程序的主窗口,主窗口用来处理消息的代码。MFC将WinMain隐藏在框架中,不象写SDK程序时可以很容易的找到它。WINDOWS采用的消息处理机制也交给了程序框架,我们不必担心如何使这些消息和代码联系起来。并且WINDOWS定义好了一些消息,当窗口被创建时系统就会发送WM_CREATE消息原创 2013-10-18 11:45:53 · 1110 阅读 · 0 评论 -
VC 开机自动启动程序代码
最好的还是快捷键+启动文件夹的方式,这样尽量不更改太多系统注册表。很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run 。参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作) //实用代码一int原创 2013-10-18 12:09:41 · 781 阅读 · 0 评论 -
网络游戏外挂制作
在几年前我看到别人玩网络游戏用上了外挂,做为程序员的我心里实在是不爽,想搞清楚这到底是怎么回事。就拿了一些来研究,小有心得,拿出来与大家共享,外挂无非就是分几种罢了(依制作难度):1、动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标、键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式。(这种外挂完全是垃圾,TMD,只要会一点点API的人都知道该怎么做,原创 2013-10-18 12:13:28 · 1236 阅读 · 0 评论 -
C/C++内存泄漏及其检测工具
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较转载 2013-10-18 10:03:16 · 523 阅读 · 0 评论 -
在VC中使用GDI+
在 头文件 stdafx.h 添加如下的代码#define ULONG_PTR unsigned long#include using namespace Gdiplus;在 CWinApp 派生出来的 你自己的 C×App 的头文件 添加ULONG_PTRgdiplusToken;在 BOOL C×App::InitInstance() 中添加GdiplusStart转载 2013-10-18 10:29:57 · 636 阅读 · 0 评论 -
如何让程序自动管理线程
引言多线程是一种很好的程序机制,使用线程可以充分的利用电脑资源,进行并行的业务处理。不过好的东西总有它的不足。线程是好,不过滥用,或管理不当就会造成线程混乱,内存漏洞,造成电脑速度变慢,反应迟钝。 想法于是有人提出能不能让线程自己管理自己,把这复杂的工作交给电脑来处理。笔者经过多年的实践,终于用VC++实现了这一目的。大家知道在VC++中我们可以用CreateThread创建一原创 2013-10-18 12:07:54 · 565 阅读 · 0 评论 -
MFC的进程和线程,非正常终止
进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资源。原创 2013-10-18 16:21:39 · 843 阅读 · 0 评论 -
VC++常用功能代码
1. 如何获取系统日期CTime tm = CTime :: GetCurrentTime();CString strTime = tm.Format(_TEXT(“%Y-%M-%d %H:%M:%S));MessageBox(strTime); 2. 动态分配二维数组int **array;array = new int*[col];i原创 2013-10-25 16:04:39 · 2056 阅读 · 0 评论 -
Visual C++线程同步技术
线程同步的方式有: 临界区 管理事件内核对象 信号量内核对象 互斥内核对象分别介绍如下:使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往原创 2013-10-25 16:07:20 · 490 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑原创 2013-10-25 16:09:02 · 580 阅读 · 0 评论 -
VC++中进程与多进程管理的方法
进程是当前操作系统下一个被加载到内存的、正在运行的应用程序的实例。每一个进程都是由内核对象和地址空间所组成的,内核对象可以让系统在其内存放有关进程的统计信息并使系统能够以此来管理进程,而地址空间则包括了所有程序模块的代码和数据以及线程堆栈、堆分配空间等动态分配的空间。进程仅仅是一个存在,是不能独自完成任何操作的,必须拥有至少一个在其环境下运行的线程,并由其负责执行在进程地址空间内的代码。在进程启动原创 2013-10-18 16:49:12 · 1283 阅读 · 0 评论