VC基础
birdme007
郑州工业大学
展开
-
VC++对话框中添加状态栏的方法
方法一:1.添加成员变量CStatusBarCtrl m_StatusBar;2.在OnInitDialog()中加入: m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0); int strPartDim[3]= {10转载 2008-04-14 13:47:00 · 5356 阅读 · 0 评论 -
如何用VC++开发读取网卡MAC地址的程序
在实际的应用系统中,我们往往会需要在程序运行时获取当前机器的网卡的MAC地址,以便作为某种标识之用,如控制程序的合法性等。下文就如何用Microsoft Visual C++ 6.0开发这样的程序演示如何实现其要点。原创 2007-09-10 16:59:00 · 2006 阅读 · 1 评论 -
用 C 语言编写一个网络蜘蛛
用 C 语言编写一个网络蜘蛛来搜索网上出现的电子邮件地址作者:zhoulifa来源:http://bbs.chinaunix.net/viewthread.php?tid=821361可能大家经常要去互联网上搜索特定的内容,比如收集大量邮件地址,如果用 google 之类的搜索引擎是没法实现这种特定功能的,所以用 C 语言来写一个吧。它的功能就是不断去取得网络上的页面,然后分析出网页上转载 2007-09-06 15:33:00 · 2463 阅读 · 0 评论 -
Visual C++制作一个Sniffer实例
Sniffer是网络中一种常见的嗅探技术。对于网络管理员而言,他可以利用Sniffer来获取相关的网络流量情况进而发现一些潜在的网络性能或者安全问题;而对于黑客而言,Sniffer则能够帮助他得到一些重要的数据诸如用户名和密码或者其他的商业机密。Sniffer工作在用户看不见也注意不到的网络底层,隐蔽性极强,如被非法利用将会造成极大的危害,而利益受损的用户可能还浑然不觉。 为了使读者对Sni转载 2007-05-29 11:59:00 · 1926 阅读 · 0 评论 -
INI文件编程
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LP原创 2007-05-24 15:14:00 · 1036 阅读 · 0 评论 -
串口调试助手源程序(1)
1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm()6.打开和设置串口参数7.发送数据 在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月,在全国各地累计下载量近5000人次,在近200多个电子邮件中,2转载 2007-05-18 14:52:00 · 2413 阅读 · 0 评论 -
串口调试助手源程序
目次:1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm()6.打开和设置串口参数7.发送数据8.发送十六进制字符9.在接收框中以十六进制显示10.如何设置自动发送11.什么是VARIANT数据类型?如何使用VARIANT数据类型?转载 2007-05-18 13:47:00 · 3302 阅读 · 3 评论 -
解析“extern”
1、 声明外部变量 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件: //A.cpp转载 2007-05-17 09:40:00 · 748 阅读 · 0 评论 -
VC单文档切换多视图
相信这就是vc的弊病吧!项目作了很久发现应该用多视图,可是刚开始建立工程的时候考虑不周阿,没办法,只能从网上搜了,竟搜到了一个不错的函数可以解决这个问题:void CMainFrame::SwitchToView(int nForm){ //CDocument* pDoc = GetActiveDocument(); CView *pOldActiveView=GetActiveVi原创 2007-05-16 16:36:00 · 2451 阅读 · 1 评论 -
分割窗口后如何限制分割条的移动范围
做一个项目,把一个单文档的窗口分割成左右两列,同时还需要设置左边窗口的最小尺寸。找了很多资料,都是针对对话框或者文档的,试了OnSizing和GetMinMaxInfo,结果对分割窗口无效。 后来看到分割窗口的例子有锁定分割条的代码,跟同事讨论了一下,来了灵感。下面是解决办法,其实很简单的, 可能以前有人做过吧,不过我在网上没有搜索到,所以把我的做法写出来跟大家分享。一、新建一个类CMyS转载 2007-05-14 16:19:00 · 1092 阅读 · 0 评论 -
vc对注册表各数据类型操作
下面这个是基于MFC的基本对话写的。。 演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。 void CUserRegDlg::OnOK() { // TODO: Add extra validation here CString str = "hello reg"; DWORD reg转载 2007-09-10 17:29:00 · 1324 阅读 · 0 评论 -
浅析ActiveX控件的CAB压缩
1. 引言ActiveX控件技术是从OLE基础上发展起来的,是将OLE进行了扩展从而使其适应Internet、Intranet、商业应用程序等的开发。当ActiveX控件的程序代码在Internet上传输时,使用压缩技术传输程序代码变得非常有意义。从 另一方面来看,如果ActiveX控件还调用到其他的DLL程序模块,那么IE也必须把这些程序下载到本地来。为此,Microsoft采用了惯用的 CAB转载 2007-09-14 10:50:00 · 2546 阅读 · 0 评论 -
浏览器集成教学 自定义浏览器 C++/VC
自定义浏览器本教程提供了自定义浏览器控件的行为和外观的一些方法。你将看到高级的宿主接口,IDocHostUIHandler, IDocHostUIHandler2, IDocHostShowUI, 和ICustomDoc。本文也讨论其他自定义方法,例如在宿主的IDispatch实现中处理DISPID_AMBIENT_DLCONTROL来进行 下载控制;以及使用IHostDialogHelper转载 2007-10-26 15:18:00 · 3009 阅读 · 0 评论 -
UDP服务器
#include "StdAfx.h" #include winsock2.h> #include ws2tcpip.h> #include "Stdio.h" #define BUFSIZE 1024 //max size of incoming data buffer #define MAXADDRSTR 16 #define DEFAULT_GROUP_ADDRESS "239.2原创 2008-04-09 13:16:00 · 3173 阅读 · 2 评论 -
用 C 语言编写 Windows 服务程序
// NTService.cpp : Defines the entry point for the console application.//#include windows.h>#include stdio.h>#define SLEEP_TIME 5000#define LOGFILE "C:/MyServices/memstatus.txt"SERVICE_STATUS Ser转载 2008-04-11 16:53:00 · 3083 阅读 · 0 评论 -
利用timeGetTime()实现延时操作
相信有很多朋友想利用timeGetTime()实现延时操作,通常实现方法如下:但在编译时出现下面错误,不知为什么,我也曾经出现过这种问题,但通过自己的努力已经解决了,下面给出解决方法,希望能对大家有所帮助.void CDib::Delay(DWORD dwDelayTime){ DWORD dwTimeBegin,dwTimeEnd; dwTimeBegin = timeGet原创 2008-01-11 11:57:00 · 4144 阅读 · 0 评论 -
vc6.0配置directx9.0
In Visual C++ create a new Win32 Application. File > New From the Projects tab select Win32 Application Enter a name for your project such as “DX Project 1”原创 2008-01-09 15:36:00 · 2146 阅读 · 1 评论 -
C程序中的内存管理
相比静态地分配内存空间,使用动态内存分配具有明显的优势:1, 分配空间的大小够精确: 设想一个读取用户输入行的程序, 如果使用静态分配的数组作为buffer, 那么, 你如何确定该数组的长度呢? 太大或太小都不合适转载 2008-02-29 17:26:00 · 1144 阅读 · 1 评论 -
VC多线程编程
VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好. 一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg:转载 2007-11-21 16:36:00 · 1895 阅读 · 2 评论 -
透明位图的显示
透明位图的显示作者:王骏 下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动转载 2008-01-24 10:36:00 · 1970 阅读 · 0 评论 -
Internet Explorer 编程简述(七)完美的“编码”菜单
1、概述Internet Explorer有实在太多没有公布的东西。上一篇文章《Internet Explorer 编程简述(六)自定义浏览器上下文菜单》提到的获取“编码”菜单的方法就是利用了浏览器的上层窗口“Shell DocObject View”的未公布的命令ID。本文将要介绍的是如何用这个ID把“编码”菜单放到我们自己的菜单中来(如工具条上的“编码”按钮的下拉菜单)。 #d转载 2007-11-01 17:25:00 · 837 阅读 · 0 评论 -
Internet Explorer 编程简述(六)自定义浏览器上下文菜单
1、概述Internet Explorer提供了非常开发的接口,使开发人员不仅可以把其浏览器核心嵌入应用程序,还可以通过各种接口以实现更深层的控制。本文就将介绍对浏览器进行高级控制的话题之一——自定义上下文菜单。2、最简单的情况自定义的IE及WebBrowser的上下文菜单,最简单的方式就是在注册表的HKEY_CURRENT_USER/Software/Microsoft/Internet E转载 2007-11-01 17:20:00 · 994 阅读 · 0 评论 -
让窗口轻而易举变漂亮
前段时间一直在想怎么样能让窗口变得更漂亮一点,更加吸引人呢?在网上也看到了不少高手们的做法,但对于我这种不喜欢太复杂的人来说,我不是很喜欢那样写代码,GetSystemMetrics函数来得到各个边框的长度或宽度。。。。没几下,我的头就晕了,在查了许多资料以及实验后,我终于找到了一种比较简单的美化窗口的方法,现在就拿出来献丑一下,觉得不好的就请跳过去吧~~大家请看这张图: 其实这张图已经很直观转载 2007-05-14 16:18:00 · 1009 阅读 · 0 评论 -
ADO访问数据库大全
关键字 ADO访问数据库大全原作者姓名 相生昌 介绍VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。 读者评分 10 评分次数 3 正文一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和转载 2007-05-09 16:13:00 · 951 阅读 · 0 评论 -
保存和恢复用户优先选项(注册表)
目标保存并恢复用户在前面例子中选定的选项。策略使用六个CWinApp函数把选项值装入并保存到系统注册表中。步骤1.配置应用程序1)把下面列出的#define语句添加到主框架类的定义文件中,用用户公司名字来替换“Company”,以及用应用程序选项的描述性名字替换“Optionx”。#defineCOMPANY_KEY "Company"#defineSETTINGS_KEY "Settings"原创 2007-04-11 14:37:00 · 1102 阅读 · 0 评论 -
MFC学习笔记(二)处理命令行选项
目标让应用程序处理这里所见的命令行标志。>XXX.exe /c /d策略一个MFC应用程序可以用CCommandLineInfo类的成员函数ParseParam()处理一些标准标志。要添加我们自己的标志,而仍然能够支持另外一些标志,我们将从CCommandLineInfo派生类,然后重载ParseParam()。步骤1.创建一个新的CCommandLineInfo类1)用ClassWizard创建原创 2007-04-11 13:41:00 · 6473 阅读 · 5 评论 -
关于获得MFC窗口其它类指针的方法
访问应用程序的其它类获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFrame()原创 2007-04-11 13:30:00 · 861 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(6)菜单编程
1,弹出菜单(Pop-up)是不能用来作命令响应的。2,MFC中菜单项消息如果利用ClassWizard来对菜单项消息分别在上述四个类中进行响应,则菜单消息传递顺序:View类--Doc类--CMainFrame类--App类。菜单消息一旦在其中一个类中响应则不再在其它类中查找响应函数。具体:当点击一个菜单项的时候,最先接受到菜单项消息的是CMainFrame框架类,CMainFrame框架类转载 2007-04-05 15:08:00 · 794 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
寻找WinMain人口: 在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码。 路径:MFC|SRC|APPMODUL.CPP:_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ // call shared/exported WinM转载 2007-04-05 15:05:00 · 674 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(7)对话框
孙鑫VC++讲座笔记-(7)对话框模态对话框和非模态对话框A modal dialog box must be closed by the user before the application continues. A modeless dialog box allows the user to display the dialog box and return to another task转载 2007-04-05 15:11:00 · 1242 阅读 · 0 评论 -
VC编程规范
基本要求1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。1.3 尽量使用标准库函数和公共函数。1.4 不要随意定义全局变量,尽量使用局部变量。1.5 使用括号以避免二义性。2.可读性要求2.1 可读性第一,效率第二。2.2 保持注释与代码完全一致。2.3 每个源程序文件,都有文件头说明,说明规格见规范。2.4 每个函转载 2007-04-03 17:10:00 · 644 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析
一,消息映射机制1,消息响应函数:(例:在CDrawView类响应鼠标左键按下消息) 1)在头文件(DrawView.h)中声明消息响应函数原型。//{{AFX_MSG(CDrawView) //注释宏afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//}}AFX_MSG //注释宏说明:在注释宏之间的声明在VC中灰色显示。a转载 2007-04-05 15:06:00 · 732 阅读 · 0 评论 -
孙鑫VC++讲座笔记-(5)文本编程
1,创建插入符:void CreateSolidCaret( int nWidth, int nHeight );//创建插入符void CreateCaret( CBitmap* pBitmap );//创建位图插入符void ShowCaret( );//显示插入符void HideCaret( );//隐藏插入符static void PASCAL SetCaretPos( POINT po转载 2007-04-05 15:07:00 · 604 阅读 · 0 评论 -
MFC学习笔记(一)应用程序窗口初始化
如果想改变应用程序窗口样式,则需要直接编辑CMainFrame::PreCreateWindow()函数。直接编辑还允许为应用程序的初始外观作某些额外的变化。2.编辑CMainFrame::PreCreateWindow()1)使应用程序位于屏幕中央,并只占据屏幕的90%,可以使用下面的代码:BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs){//c原创 2007-04-11 10:31:00 · 3423 阅读 · 2 评论 -
如何不让Doc/View框架不创建新文档
在文档窗口创建的时候 ,它缺省总是会新建一个新文档 , 那么怎么让它不新建文档呢?就这个问题 , 我对文档视图窗口应用程序启动时的文档创建机制 , 稍稍的浅浅挖了一下 , 做了一个详细的分析 , 希望能够对初学者有所帮助 . 在App文件的InitInstance()函数中,有如下几行代码:CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);原创 2007-04-11 12:57:00 · 890 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出(四)
MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic、CButton等类使之具备更强大的能力。 使用Visual C++向导生产MFC扩展DLL时,MFC向导会自动增原创 2007-04-13 09:38:00 · 859 阅读 · 0 评论 -
动态窗口实现(API函数AnimateWindow详解)
说明:动态窗口的应用,使你的程序更引人注目函数功能:该函数能在显示与隐藏窗口时能产生特殊的效果。 速查:WIDdOWS NT:5.0以上版本:Windows:98以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。 有两种类型的动画效果:滚动动画和滑动动画。 函数原型:BOOL AnimateWindow(HW原创 2007-05-09 12:42:00 · 2690 阅读 · 0 评论 -
托盘区图标操作
经常能够看到软件运行后在托盘产生图标 ,其实也就是对结构 NOTIFYICONDATA 的设置再调用Shell_NotifyIcon就能完成 NOTIFYICONDATA notifycd; notifycd.cbSize=sizeof(NOTIFYICONDATA); notifycd.hIcon=AfxGetApp()->Load转载 2007-05-08 12:45:00 · 871 阅读 · 0 评论 -
轻松制作24位真彩色工具栏
制作24位真彩色工具栏,网上的资料可真是多啊。我写这篇文章前就想放弃写了,虽然我是做出来,可人家早就做出来了啊。 这段时间呢,由于无事可干,老板看着我闲着也是闲着,就叫我先做一个软件界面出来,抱着学习与工作的心态,就开始做了。看到 Acrobat Reader 5.1,就想着我也能不能将工具栏做成和它的一模一样呢?想法当然是可行的了,做法也是可行的。网上这方面的资料很快我就轻松获转载 2007-04-27 13:15:00 · 1313 阅读 · 0 评论 -
几种常用加壳软件图文详解
为了保护自己的软件不轻易被他人“借鉴”,有必要对软件进行一些加密保护,而这方面目前己有成熟的专业加密软件可选择。但不要太依赖壳的保护,大多数壳是可以被攻破的,还是在自身保护上下些功夫。加密软件比较多,但在强度与兼容性上做的好的并不多,这里向大家介绍几款常见的。 现在壳的发展一个趋势就是虚拟机保护,利用虚拟机保护后,能大大提高强度,因此建议尽可能使用此类技术保护软件。如Themida ,W原创 2007-04-20 11:37:00 · 29861 阅读 · 0 评论