VC
文章平均质量分 65
JoeBlackzqq
爱好网络软件的开发,更喜欢结交志同道合的朋友!
展开
-
屏蔽基于对话框的MFC程序中按下ESC关闭窗口的功能
在基于对话框的MFC程序中,如果你按下ESC,将会关闭对话框。如何屏蔽这个键呢,其实很简单,只要重载下PreTranslateMessage()即可。方法:在对话框类上右击,选择“Add virtual Function...",在列表中选择PreTranslateMessage。在实现代码中屏蔽ESC键。代码如下:BOOL CDdDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->wParam == VK_ESCAPE) { return 0; } return原创 2010-07-20 22:25:00 · 1724 阅读 · 0 评论 -
当按下ESC键时,关闭应用程序
在一个单文档MFC应用程序中,按下ESC时关闭应用程序,实现方法:在CMainFrame类里重载PreTranslateMessage(),代码如下:BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){ if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE) { PostQuitMessage(WM_QUIT); } return CFrameWnd::PreTranslateMessage(pM原创 2010-07-20 22:41:00 · 1569 阅读 · 0 评论 -
HDC,CDC,CClientDC,CPaintDC,CWindowDC的区别
CDC是MFC的DC的一个类 HDC是DC的句柄,API中的一个类似指针的数据类型.MFC类的前缀都是C开头的 H开头的大多数是句柄 首先说一下什么是DC(设备描述表)解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使原创 2010-07-21 03:02:00 · 989 阅读 · 0 评论 -
带CheckBox的CListCtrl,源码可下载
实现了一个带CheckBox的CListCtrl,源码可从http://d.download.csdn.net/down/2804276/JoeBlackzqq下载。原创 2010-11-03 00:22:00 · 1685 阅读 · 0 评论 -
MFC遍历指定目录下的所有文件/文件夹(不遍历子目录)
新建一个C++控制台程序,增加对MFC的应用。源代码如下: // TraverseDir.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using n原创 2011-10-13 10:43:15 · 4568 阅读 · 0 评论 -
STL::map默认会按照.first的字母顺序排列
看个代码:// map默认会按照.first的字母顺序排列#include #include #include using namespace std;int main(){ map map1; map::iterator mapit; map::iterator saveit; map1["fab"] = "2原创 2011-10-24 16:22:03 · 2262 阅读 · 2 评论 -
用户登录成功后才进入主窗口进行其他操作
应用前景:面对一个应用程序,用户只有输入正确的用户名和密码后,才能进入主窗口进行其他的操作;否则,提示登录失败,重新输入。开发环境:Windows XP + VC6.0 新建一个基于MFC的单文档应用程序(项目名:delme),默认就行,。。。直到Finish。编译运行,就可以有一个窗口出来了,这个窗口作为主窗口。现在要做一个登录窗口,它将在主窗口显示出来前跳出来提示用户登录。原创 2011-11-20 17:32:56 · 5617 阅读 · 2 评论 -
OLE、OCX和ActiveX控件之间的比较
一、过去的OLE和今天的OLE 最初的OLE含义是指在程序之间链接和嵌入对象数据,它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得当初在Word6.0中插入一个图形的新奇和喜悦),使得那些没有太多专业知识的用户能够很容易地协调多个应用程序完成混合文档的建立。1991年制定的OLE1.0规范主要解决多个应用程序之间的通信和消息传递问题,微软希望第三方开发商能够遵守这个规范,转载 2011-11-21 15:12:36 · 1496 阅读 · 0 评论 -
VC6编译卡死之解决办法
From: http://www.hackpig.cn/post/601.html 一直以来用的VC6都是随便下载了一下VC6SP6,据介绍说是集成了sp6的,结果多次在编译的时候被卡死,不能关闭,只能从任务管理器直接结束,感觉很麻烦,简直就是影响人的心情,结果一看,文件版本还是6.0.8168.2的,如下图1所示。这肯定是不行的,需要打补丁,于是乎就去找官方的补丁包,下载之后安装上,转载 2011-11-21 22:58:30 · 2001 阅读 · 0 评论 -
读取CPU信息
简单的讲下读取CPU信息的一个思路,看了后,相信谁都会说:原来这么简单呀,我也会。哈哈,进入正题,看图:看清楚了吗,原来CPU信息在注册表里就有。如果你只是要简单的CPU信息,就直接从这里读吧,相信会简单很多。下面是一个C# winForm读取CPU信息的小例子,界面设计如下:接下来,为“获取CPU信息”按钮添加点击事件:private void button1_C原创 2011-11-21 21:36:33 · 1575 阅读 · 0 评论 -
自定义ActiveX组件在设计阶段,切换属性页后出现异常
源码下载:ActiveX-Clock-OCX 参照孙鑫的>中第18章自定义ActiveX中的Clock例子(到18.3节之前),完成了OCX控件的制作,而且也编译(Debug模式)、注册成功了!于是又创建了一个MFC基于对话框的测试程序,在对话框中放入了这个Clock控件,界面如下:接下来右击Clock控件,选择“属性”,切换到“设置时间间隔面板”,更改时间后,切换到其他一个属性页原创 2011-11-22 17:00:15 · 1869 阅读 · 2 评论 -
怎么把OCX打包成cab文件
From: http://blog.csdn.net/ghlfllz/article/details/5931402生成TesterOCX.inf,输入如下内容:[version]signature="$CHICAGO$"AdvancedINF=2.0 [Add.Code]TesterOCX.ocx=TesterOCX.ocx转载 2011-11-27 22:39:18 · 1005 阅读 · 0 评论 -
ActiveX控件打包成Cab置于网页中自动下载安装
From: http://www.iteye.com/topic/110834makeCAB.rar (188.5 KB) [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该ActiveX控件(test.ocx)放在本机转载 2011-11-27 23:09:14 · 1245 阅读 · 0 评论 -
在HTML网页中使用ActiveX控件
From: http://blog.163.com/haizai219@126/blog/static/4441255520097264447968/1. 摘要: 在企业应用中,为了实现一些特殊的功能,如播放自有协议的视频,我们需要在传统的HTML网页中插入ActiveX控件,由ActiveX控件来满足需求功能。2. 步骤:l 首先的转载 2011-11-27 21:09:28 · 3390 阅读 · 0 评论 -
一篇介绍VC开发OCX的文章,写得太棒了!!!
From: http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是转载 2011-11-28 09:16:41 · 2150 阅读 · 0 评论 -
将ocx和DLL文件打包成cab文件,inf的编写
From: http://icrwen.iteye.com/blog/1118766http://blog.csdn.net/yimiyangguang1314/article/details/6563540将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装分类: Windows应用2010-03-25 18:36 2722人阅读 评论(1转载 2011-11-27 23:07:00 · 1671 阅读 · 0 评论 -
无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
一,问题描述MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 Debug\jk.exe : fatal error LNK1120: 1 个无法解析的外部命令error LNK2001: unresolved external symbol _Wi转载 2011-11-10 15:11:50 · 1423 阅读 · 0 评论 -
ULONGLONG乘法分析
From: http://blog.csdn.net/syf442/article/details/607771564位乘法分析:VC6 Console Code: int main(int argc, char* argv[]){ ULONGLONG a = 0x87654321; ULONGLONG b = 0x1转载 2011-12-05 14:03:00 · 1081 阅读 · 0 评论 -
ULARGE_INTEGER运算
在调用GetDiskFreeSpaceEx()获取磁盘空间时,由于参数是ULARGE_INTEGER(64位整数),所以普通的“加减乘除”并不支持(是没有实现),因此我们采用其他办法来实现,先来看下ULARGE_INTEGER的结构定义:typedef union _ULARGE_INTEGER { struct { DWORD LowPart; DWORD HighPar原创 2011-12-05 14:10:04 · 4038 阅读 · 0 评论 -
论调用约定__stdcall,__cdecl,__fastcall,thiscall,naked call
From: http://blog.vckbase.com/arong/archive/2004/06/09/409.aspx在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出转载 2011-12-07 10:31:03 · 602 阅读 · 0 评论 -
SAFEARRAY使用方法示例
From: http://blog.csdn.net/absurd/article/details/786822 SAFEARRAY使用方法示例 SAFEARRAY不是很好用,一些函数不太直观,一不小心就着了它的道。上次学习编写Google桌面插件时就遇到了麻烦,本来应该是vsa.vt = VT_ARRAY | VT_BSTR,结果写成了vsa.vt = VT_ARRAY,转载 2011-12-19 14:48:08 · 1139 阅读 · 0 评论 -
获取硬盘总容量,柱面数,磁道数,扇区数
下面的代码来自MSDN#include #include #include BOOL GetDriveGeometry(DISK_GEOMETRY *pdg){ HANDLE hDevice; // handle to the drive to be examined BOOL bResult; // results转载 2011-12-12 15:36:32 · 4860 阅读 · 2 评论 -
[转]给控件做数字签名
From: http://www.mzwu.com/article.asp?id=1118 我做了一个WebRtf的控件,主要是封装了RichtextBox控件,增加一些方法,如打印等,用来实现在Web上显示RTF文档的功能。 编译成WebRtf.ocx,在VB中测试成功,为了能在Web上使用,我们需要做两个工作:一是将其打包成Internet发布包 二是将这个包进行数字签名转载 2011-12-19 11:23:01 · 881 阅读 · 0 评论 -
VC6获取硬盘序列号、型号、修订版本号
因为要做个读取硬盘参数信息的控件,所以在网上找了不少代码,但是自己作为一个初学者在使用别人代码时,总会发现有各种各样的问题:1. 需要的头文件未写明2. 有些定义未给出3. 代码的开发环境未明,导致编译时出现“XXXX“未定义3. 添加的代码写在哪里不明确以上这些情况对于初学者是很容易遇到的,所以这里整理了下。以下是“读取硬盘序列号、型号、修订版本号”的完整代码(win32原创 2011-12-19 16:57:48 · 7248 阅读 · 2 评论 -
Visual Studio 2005 移植 (札记之一)
From: http://blog.csdn.net/hylaking/article/details/1700475Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104一、WINVER Compile result: WINVER not defined. Defaulting to 0x0502 (Wi转载 2011-12-12 17:24:05 · 781 阅读 · 0 评论 -
遍历磁盘类型
// 遍历磁盘类型: GetDriveType()#include #include using namespace std;int main(){ char rootPath[10] = {0}, driveType[21] = {0}; UINT nType; for(char a = 'A'; a <= 'Z'; a++) { sprintf(rootPath,原创 2011-12-14 16:15:45 · 1083 阅读 · 0 评论 -
接触VC之四:COM组件模型基础
From: http://daimajishu.iteye.com/blog/1081292一年又一年,已经又过了一年了。我VC的生涯已经两岁了。可以相当地庆贺一下哟。回顾这一年的学习(唉,还没有工作实践呢。这年头,工作不好找哇。),还学了不少的好东西。其中,最重要的就是COM组件模型,我个人觉得这个几乎是Windows的核心。许多先进的技术(比如微软著名的DirectX,ADO,没有转载 2011-12-14 00:21:43 · 1274 阅读 · 0 评论 -
.idl与.odl的区别
From: http://hi.baidu.com/%CD%E6%CA%AF%CD%B7%B5%C4%D0%A1%BA%A2/blog/item/1b9a942fe8cfcf594ec22629.html1..odl和.idl在com中的功能相同. 前者是ActiveX中的 后者是ATL中. 可在前者的文件中 用 #import "XXXXX.idl" 的方式包含后者. 反过来转载 2011-12-26 10:26:55 · 2063 阅读 · 0 评论 -
VC2010如何给ActiveX添加事件
利用VC开发ActiveX时,需要给控件添加标准事件或自定义事件,在VC6中有多种方法:一、按Ctrl + W 打开类向导->切换到“ActiveX Events"->Add Event...,如图: 二、右击_DXXXEvents->Add Event...,在弹出的窗口中选择要添加的事件,如图: 但是用同样的方法想在VC2010中添加事件,好像就不行了。原创 2011-12-15 13:39:03 · 1614 阅读 · 0 评论 -
封送处理您的数据:利用 COM 和 Windows 2000 的高效传输数据的技术
From: http://blog.csdn.net/zhoujianhei/article/details/1844319摘要 您所选择的数据传输方式在分布式应用程序中是非常重要的。Windows 2000 提供了几种新的特性,可以更加高效地进行数据传输。轻量级的处理程序使得您能够编写智能代理,它们能够缓存结果并且执行带缓冲的读写操作,从而将网络调用的次数减至最小。Windows 2转载 2011-12-25 22:08:30 · 1595 阅读 · 0 评论 -
[QA] ActiveX/COM
From: http://www.microsoft.com/msj/0696/activex0696.aspxJune 1996Code for this article: activexcode0696.exe (4KB)Don Box is a co-founder of DevelopMentor where he manag转载 2011-12-25 23:25:52 · 2362 阅读 · 0 评论 -
COM、COM+和DCOM的定义和区别
From:http://zouyou1986.blog.163.com/blog/static/1772625920105461931335/ 解释COM、COM+和DCOM的定义和区别?COM是组件对象模型,是实现3/N层应用的基础,它的目的就是组件化,应用程序分层.DCOM是分布式的COM,也就说可以远程的创建,最初它利用远程自动化来实现,用注册VBR的方法来配置客户端,来适应DC转载 2011-12-26 10:11:06 · 11724 阅读 · 2 评论 -
SAFEARRAY使用实例
From: http://school.ogdev.net/ArticleShow.asp?id=1365&categoryid=10 SAFEARRAY使用实例目录:SAFEARRAY使用实例... 1目录:... 1前言:... 1何谓SAFEARRAY:... 1创建SAFEARRAY: 2方法一:使用SafeArrayAllocD转载 2011-12-19 14:55:40 · 802 阅读 · 0 评论 -
C#和C++结构体Socket通信
From: http://hi.baidu.com/yangliangwang/blog/item/1a0116138ff098d6f6039ea9.html最近在用C#做一个项目的时候,Socket发送消息的时候遇到了服务端需要接收C++结构体的二进制数据流,这个时候就需要用C#仿照C++的结构体做出一个结构来,然后将其转换成二进制流进行发送,之后将响应消息的二进制数据流转换成C#结构。转载 2011-12-26 22:22:01 · 974 阅读 · 0 评论 -
VC调用C#写的DLL
From: http://hi.baidu.com/ocnc/blog/item/2c7fc45c1d1f1051fbf2c0ea.htmlVC中调用C#写的DLL时,对C#这边的DLL有要求,即要在.NET这边以COM方式生成DLL;步骤:1.创建类库;类库的创建必须分为接口和实现类;给外面提供的是COM接口;创建了接口和类之后还要创建“Guid”,这个在“工具-》创建GUI转载 2011-12-28 15:39:53 · 1100 阅读 · 0 评论 -
给控件做数字签名
参考:http://babyt.cnblogs.com/archive/2005/03/14/118302.htmlhttp://babyt.cnblogs.com/archive/2005/03/14/118309.html在控件(.ocx)开发完成后,一般需要将其打成cab包并发布出去,这样当用户的机器上无此控件时,浏览器就会自动提示下载并安装。因此,主要完成以下四步:原创 2011-12-18 13:29:43 · 1005 阅读 · 0 评论 -
VS2010删除所有断点时不弹出提示窗口
用VS.NET平台程序时,如何才能在删除所有断点时不弹出提示窗口呢?请看下图,马上明白:原创 2012-02-03 22:07:34 · 2036 阅读 · 1 评论 -
VC6重载字体对话框,去除颜色下拉框
为了去除字体对话框中的颜色下拉框,我们需要重载字体对话框类:CFontDialog1. 创建一个MFC Class,继承自CFontDialog:// MyFontDialong.h : header file//// CMyFontDialong dialogclass CMyFontDialong : public CFontDialog{ DECLARE_DYNA原创 2011-12-30 10:48:41 · 1745 阅读 · 0 评论 -
COM应用实例--获取桌面墙纸路径
COM应用实例--获取桌面墙纸路径:Win32控制台程序(C++)/* 功能: 获取桌面墙纸的路径,并建立一个该墙纸的快捷方式保存在指定路径 说明: COM应用实例, Win32控制台程序*/#include #include #include #include using namespace std;CString getWallpaper() // 获原创 2011-12-28 22:50:57 · 1122 阅读 · 0 评论 -
VC++中把一个对话框最小化到托盘[转载]
From: http://hi.baidu.com/maxlcl/blog/item/61e83c87de35e529c65cc3e0.html一、托盘简介 所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。 二、托盘编程相关函数 把程序放到托盘上转载 2012-02-03 14:14:31 · 1142 阅读 · 0 评论