VC/MFC类
文章平均质量分 70
gxj1680
取之于网,用之于网
很多文章摘录或转帖,便于查阅相关资料,如有侵犯您的权利,请告诉我,我会尽快删除..
展开
-
CToolBar的使用总结(转2)
4、工具条的停靠位置(1)标准工具条的停靠位置工具条类CToolBar是控制条类CControlBar 的派生类,其显示的初始停靠位置是通过调用继承的函数CControlBar::EnableDocking(DWORD dwStyle)来确定的,其参数dwStyle用来指定停靠具体位置,与本文有关的风格如下,其余请参阅VC5的联机帮助:CBRS_ALIGN_TOP 工具条停靠在客户区域转载 2010-04-30 11:56:00 · 950 阅读 · 0 评论 -
(转)使用VC++操作Excel文件
<br /><br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://xfrog.blogbus.com/logs/24923682.html<br /><br />本文档适用于:Microsoft Foundation Classes (MFC), Microsoft Visual C++, 32-bit Editions, version 6.0 以上Microsoft OLE 库 第一步:建立一个自动化工程启动VC 6.0,打开新建对话框,新建一个MFC A转载 2011-03-14 10:25:00 · 770 阅读 · 0 评论 -
(转)VC中调用 Excel 的总结
<br />1、MSDN 上的代码,很好的例子 <br /><br />#include "excel8.h " <br /><br /><br /> // OLE Variant for Optional. <br /> COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); <br /><br /> _Application objApp; <br />转载 2011-03-14 10:42:00 · 933 阅读 · 0 评论 -
(转)用VC6.0编写Word插件(Office2007篇)
<br /><br />简介<br /> 微软在06年底推出了两个重量级的产品:Vista和Office 2007。在Office2007中使用了新的UI方式。微软大力鼓吹这种叫做Ribbon的新的UI将会给使用Office的人带来更大的便利性。在Office插件方面,微软保持了对原有版本 (office 2K、XP、03) 的兼容性,都被放到一个叫做Add-In的Tab里面,如下图所示。<br /><br /> 不过样子比较难看,到底有没有办法让界面做得更漂亮一点呢?答案是肯定的。本文假设读者已经阅读转载 2011-03-14 14:27:00 · 1158 阅读 · 0 评论 -
(转)使用VC操作Excel 2003(例程)
<br /><br />/******************************************************************************<br />*<br />* 这是上面VBAReportDemo的对应程序<br />* 演示使用VC操作Excel 2003<br />* 功能:设置单元格,风格,冻结窗格。以及如何将对应的VB代码翻译成VC<br />*<br />* 时间:2007-04-16 09:31<br />* 作者:高宏伟(DukeJoe)<br转载 2011-03-14 14:39:00 · 1031 阅读 · 0 评论 -
(转)_beginthread还是CreateThread
<br />程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。<br />I. 起因<br />今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并且告诉我如果使用不当可能会有内存泄漏。其实我过去对这个问题也是一知半解,为了对朋友负责,专门翻阅了一下VC的运行库(CRT)源代码,终于找到了答案。<br />II. CRT<br />CRT(C/C++ Runtime转载 2011-04-06 17:07:00 · 1187 阅读 · 0 评论 -
使用CDC进行颜色/图片合成(透明处理)
<br />//注:原文章出处忘了,只记得根据当时的方法做的两个颜色/图片合成的函数/************************************************************************//* 颜色和颜色进行合成/************************************************************************/void DrawAlphaRect(CDC* pDC, CRect& rect, COLORREF c转载 2011-04-19 17:05:00 · 2354 阅读 · 0 评论 -
终止线程的运行
<br />摘自windows核心编程:<br /><br />6.5 终止线程的运行<br />若要终止线程的运行,可以使用下面的方法:<br /><br />• 线程函数返回(最好使用这种方法)。<br /><br />• 通过调用ExitThread函数,线程将自行撤消(最好不要使用这种方法)。<br /><br />• 同一个进程或另一个进程中的线程调用TerminateThread函数(应该避免使用这种方法)。<br /><br />• 包含线程的进程终止运行(应该避免使用这种方法)。<br />转载 2011-04-25 13:46:00 · 1729 阅读 · 0 评论 -
(转)关于 Debug 和 Release 版本区别
关于Debug和Release之本质区别的讨论本文主要包含如下内容:1. Debug 和 Release 编译方式的本质区别2. 哪些情况下 Release 版会出错2. 怎样“调试” Release 版的程序一、Debug 和 Release 编译方式的本质区别Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布转载 2011-11-25 10:40:27 · 478 阅读 · 0 评论 -
(转)VC图片的半透明处理
半透明原理: 假设LCD是256色的。颜色格式为332(RGB) 显存中的每一个字节的数据对应一个象素点。 在数据写入显存之前,读取相应相素点值,然后与新的数据按一定的规则混合之后,再写入相应像素点的显存。 这样主要问题关键是混合算法。 混合算法目前在游戏上常用到的算法是AlphaBlend。计算公式如下 假设一幅图象是A,另一幅透明的图象是B,转载 2011-12-20 11:51:08 · 654 阅读 · 0 评论 -
(转)工具条研究手记(6)- 在工具条上面创建控件并响应
<br /><br />/*****************************************************************/<br />/* 工具条研究手记(6)- 在工具条上面创建控件并响应 */<br />/*****************************************************************/<br /><br />一、工具条上面创建组合框,并响应组合框的选择消转载 2011-03-08 16:29:00 · 812 阅读 · 0 评论 -
(转)VC IMM/IME输入法编程
<br /><br />输入法编辑器篇<br />输入法编辑器(IME)是允许用户使用标准键盘输入复杂字母与符号,如日文汉字的程式。本文描述创建及管理IME(input method editor)视窗的方法。<br />1、输入法编辑器简介<br />IME 不是检索用户可能用到的所字符值,而是监控用户的按键,来预料用户可能需要的字符,并提供一张备择字符列表以供用户从中选出所需字符。<br />默认情况下,IME为用户提供一个可以键入并选择备择字符的IME视窗。通过使用IME变换功能提供的定制接口,Win转载 2011-02-15 11:22:00 · 5832 阅读 · 0 评论 -
(转)调用Office2003的OCR功能识别图片上的文字
<br /><br /> int miLANG_CHINESE_SIMPLIFIED = 2052;<br /> IDocument *pDoc = new IDocument;<br /> pDoc->CreateDispatch( _T("MODI.Document") );<br /> pDoc->Create(GetAppPath() + _T(转载 2010-09-13 08:47:00 · 4442 阅读 · 0 评论 -
(转)使用CImage显示透明的PNG图片
<br /> CImage的AlphaBlend函数可以显示半透明或透明的图片,但是当使用这个函数显示PNG图片时,经常会发现PNG图片的背景没有透明,而是被显示为白色.在网上多处搜索都没有找到原因,只能自己动手了.<br /> 通过调试代码可以发现,CImage的AlphaBlend函数内部调用的是全局的Window API函数:<br /> AlphaBlend(HDC hdcDest,<br /> in转载 2010-09-17 15:57:00 · 1395 阅读 · 0 评论 -
使用VC/MFC打印(Print)
第一部分和第二部分是自己的实现及解决方法,第三部分是参考的文章一:(打印实现的操作流程)<br /> 在VC中实现打印操作,网上虽然看了很多的说明或例子,但具体实现时还是感觉迷惑,自己研究了下,将经验总结如下,如有错误,欢迎大家指正,免得误人误己。 自己实现的打印是在CView的派生类(如:CMyView)中,关于MFC内部实现,有很多文章都说明了,这里就不重复了,实现步骤如下:1:在CMyView中定义个函数入void PrintView(),函数实现调用this->OnFilePrint()原创 2010-10-29 11:21:00 · 9116 阅读 · 3 评论 -
(转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
<br /> DLL可以使用两种方法将公共符号导入到应用程序中或从 DLL 导出函数: <br />生成 DLL 时使用模块定义 (.DEF) 文件。 <br />在主应用程序的函数定义中使用 __declspec(dllimport) 或 __declspec(dllexport) 关键字。 <br />使用 .DEF 文件<br />模块定义 (.DEF) 文件是包含一个或多个描述各种 DLL 属性的 Module 语句的文本文件。如果不使用 __declspec(dllimport) 或 __decl转载 2011-01-10 11:05:00 · 847 阅读 · 0 评论 -
(转)VC++动态链接库(DLL)编程深入浅出(三)
联系作者:e-mail:21cnbao@21cn.com 相关链接:VC++动态链接库(DLL)编程深入浅出(二) (一) 第4节我们对非MFC DLL进行了介绍,这一节将详细地讲述MFC规则DLL的创建与使用技巧。 另外,自从本文开始连载后,收到了一些读者的e-mail。有的读者提出了一些问题,笔者将在本文的最后一次连载中选取其中的典型问题进行解答。由于时间的关系,对于读者朋友的来信,笔者暂时不能一一回复,还望海涵!由于笔者的水平有限,文中难免有错误和纰漏,也热诚欢迎读者朋友不吝指正!5.转载 2011-01-13 18:04:00 · 744 阅读 · 0 评论 -
(转)VC++动态链接库(DLL)编程深入浅出(一)
<br /><br />1.概论<br /><br /> 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。<br /> 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态转载 2011-01-13 15:26:00 · 710 阅读 · 0 评论 -
(转)VC++动态链接库(DLL)编程深入浅出(二)
上节给大家介绍了静态链接库与库的调试与查看(动态链接库(DLL)编程深入浅出(一)),本节主要介绍非MFC DLL。4.非MFC DLL4.1一个简单的DLL 第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。 如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程附件)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的转载 2011-01-13 17:02:00 · 611 阅读 · 0 评论 -
(转)VC++动态链接库(DLL)编程深入浅出(四)
<br /><br /> 这是《VC++动态链接库(DLL)编程深入浅出》的第四部分,阅读本文前,请先阅读前三部分:(一)、(二)、(三)。<br /> MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样。除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC。我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic、CButton等类使之具备更强大的能力。<br /> 使用Visual转载 2011-01-13 18:11:00 · 651 阅读 · 0 评论 -
(转)树型控件拖动的完美实现
<br /><br />下载本文源代码<br /><br /> 树型控件用来显示具有一定层次结构的数据项时方便、直观,被广泛地应用在各种软件中,如资源管理器中的磁盘目录就用的是树型<br />控件,我们在编程中也会经常用到,但 MFC 中提供的 CTreeCtrl 类并不直接支持拖动节点等高级特性,这使我们程序员编程时有很大限<br />制,又给软件用户带来了一些不便。下面就让我们自己动手来解决这个问题,实现树型控件中节点的拖动。<br /> 我们从 CTreeCtrl 中派生了一个类 CXTreeCt转载 2011-01-17 17:54:00 · 3806 阅读 · 0 评论 -
(转)CreateFont
函数功能:该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 函数原型:HFONT CreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwltalic, DWORD fdwUnderline, DWORD fdwStrikeOut,转载 2011-12-21 14:45:18 · 586 阅读 · 0 评论 -
VS如何调试后台.exe的代码
说一下自己的工程:一个workspace下有多个工程,一个srv(输出类型为.exe,启动方式由客户端主程序调用启动),一个客户端主程序(输出类型.exe,调用其他工程的.dll和srv的.exe等),其中srv作为后台守护线程,会自动做些后台的检测和处理,客户端为有界面形式问题:如何断点调试srv中的代码,因为每次启动都是以主程序启动为主,其他dll还可以跟踪断点调试,但srv的生产.exe原创 2011-12-12 10:25:53 · 3281 阅读 · 0 评论 -
(转)VC(MFC)在工具栏中使用PNG图片
MFC的CToolBar类中对图标的处理仅提供了三个函数:SetImageList()、 SetHotImageList()和SetDisabledImageList()。对于图像的透明,也仅支持镂空效果,即要么图标显示前景,要么显示背景。而PNG图像中的半透明效果、边缘羽化后的效果均无法表现。CToolBar没有提供图标自画功能,如何实现更漂亮的ToolBar呢? 答案就是:自已画转载 2011-12-22 09:55:47 · 1755 阅读 · 0 评论 -
(转)VC++图象处理编程(一)
基本概念前言数字图像处理技术与理论是计算机应用的一个重要领域,许多工程应用都涉及到图像处理,一直有一个强烈的愿望,想系统的写一个关于数字图像处理的讲座,由于工作学习很忙,时至今日才得以实现。 “图”是物体透射光或反射光的分布,“像”是人的视觉系统对图的接收在大脑中形成的印象或认识。图像是两者的结合。人类获取外界信息是靠听觉、视觉、触觉、嗅觉、味觉等,但绝大部分(约80%左转载 2011-12-29 13:55:18 · 1022 阅读 · 0 评论 -
(转)VC++图象处理编程(二)
BMP图像显示的特效操作在上面的学习基础上,我们可以进一步深化,学习并掌握图像特效显示技术。有了这种技术,可以用来在今后的项目开发中美化我们的软件界面,提高软件的视觉效果。在如今的商业软件中,几乎每一幅图像的显示都采用了图像特效显示,例如读者比较熟悉的Windows的屏幕保护程序就采用了各种各样的图像特效显示,使人感到眼花缭乱和耳目一新。专业图像处理软件更是提供了丰富的显示方式供用户使用,转载 2011-12-29 13:56:11 · 837 阅读 · 0 评论 -
修改已经打开的对话框的浏览路径
最近做的一个小东西要控制另外一个程序的文件保存对话框,目的是让它只能保存到我指定的位置,:P,我要控制保存的数据。 我们知道用CFileDialog很容易设置对话框的初始浏览路径,只要在CFileDialog类的OPENFILENAME结构里用自己的目录改变lpstrInitialDir就可以了:CFileDialog dlg;dlg.m_ofn.lpstrInitialDir="转载 2009-03-05 16:15:00 · 568 阅读 · 0 评论 -
LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D
工程是vs2005编辑的ipmsg(从官网download的源码),但本地是vs2008的版本,编译出现1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D.dll)1>LIBCMTD.lib(invarg.obj) : error LNK原创 2012-02-07 16:18:38 · 4915 阅读 · 0 评论 -
(转)xp下实现窗体透明特效/异形窗口SetLayeredWindowAttributes函数
摘要:本文主要介绍了Windows 2000下新增的API函数SetLayeredWindowAttributes()以及通过该函数实现窗体透明特效的一般方法,并结合代码给出了具体的编程实现过程。引言 Windows 2000操作系统无论是在品质上还是在用户界面上都有了很大的改善与提高,用户对系统的操作变的更加简单、方便,感觉也更加舒适。如果用户在使用时留意一下,不难发现其中界面上转载 2012-02-15 15:40:45 · 1312 阅读 · 0 评论 -
(转)使用WM_MOUSEWHEEL
使用WM_MOUSEWHEEL 需要把CWnd设定为Focus ON_WM_MOUSEWHEEL( ) CWnd::OnMouseWheel afx_msg BOOL OnMouseWheel( UINT nFlags, short zDelta, CPoint pt ); 返转载 2012-02-15 18:18:59 · 4276 阅读 · 0 评论 -
(转)windows核心编程--纤程
纤程的操作首先要注意的一个问题是,实现线程的是Wi n d o w s内核。操作系统清楚地知道线程的情况,并且根据M i c r o s o f t定义的算法对线程进行调度。纤程是以用户方式代码来实现的,内核并不知道纤程,并且它们是根据用户定义的算法来调度的。由于你定义了纤程的调度算法,因此,就内核而言,纤程采用非抢占式调度方式。需要了解的下一个问题是,单线程可以包含一个或多个纤程转载 2012-05-07 12:14:25 · 605 阅读 · 0 评论 -
c++下实现异形窗口(上方只显示文字其他区域穿透,下方半透明)
功能有俩个,一个透明背景,一个是上方文字处镂空(文字显示,其他空白处不显示,见下图) //上方文字处理void OperationHollowOutCharacters(){ // CRect rectCharacters(0, 0, Dialog_Width, HollowOutCharachers_Height); // if (!m_h原创 2013-06-04 16:48:40 · 3261 阅读 · 1 评论 -
(转)CRichEdit对Unicode的使用
我们都知道windows操作系统有支持ANSI和支持Unicode的版本,也有都支持的.其中,windows98只能支持ANSI系统环境.windows2000可以支持Unicode和NSI.windowsCE只支持Unicode.WindowsXP好象也是两个都支持.所以我们在开发多国语言的时候一般都选用windows2000.因为我们可以构件Unicode工程来支持多国语言的显转载 2011-12-22 09:55:06 · 1358 阅读 · 0 评论 -
(转)Building MFC application with /MD[d] (CRT dll version)requires MFC shared dll version~~~~
1>------ 已启动生成: 项目: OSGtest, 配置: Debug Win32 ------1>正在编译...1>AddScene.cpp1>main.cpp1>c:\program files\microsoft visual studio 8\vc\atlmfc\include\afx.h(24) : fatal error C1189: #error : Build转载 2011-12-22 15:41:21 · 2193 阅读 · 0 评论 -
(转)CIniFile类,读取INI文件
/*=================================================================== 文件名:CIniFile类定义文件 = = 主要功能:可以读取.修改变量数值,可以设置新的组,新的变量 == 修改日期:2002-12-28转载 2011-12-21 14:20:41 · 1064 阅读 · 0 评论 -
(转)Q版MSN-仿QQ聊天内容显示 - CRichEditCtrl
Q版MSN-仿QQ聊天内容显示 - CRichEditCtrl作者:张国斌今天在写Q版MSN的聊天内容显示界面,以前虽写过不少代码,但大部分都是使用Delphi的RichEdit控件,从未用过VC中的CRichEditCtrl,在网络上搜索了半天也没找到一个现成的(找了一个好像是韩国人写的ExRichEdit,但他的代码有问题,大家可以下载下来测试一下就知道了。ht转载 2011-12-21 14:47:54 · 1577 阅读 · 0 评论 -
(转)VC++中SetWindowPos函数详解
函数名: SetWindowPos头文件: winuser.h函数原型: BOOL SetWindowPos ( HWND hWnd, //窗口句柄 HWND hWndInsertAfter, //排列顺序的句柄 int X, //水平坐标 int Y, //垂直坐标 int cx, //宽 int转载 2011-12-20 11:52:25 · 643 阅读 · 0 评论 -
如何做CEdit中的Undo,Redo(和word类似的输入法输入一次为一个回退块)
注:因为懒了,所以只将自己发的帖子的内容Copy出来了,没有整理(http://topic.csdn.net/u/20100816/15/6232364a-ebeb-4bf6-903c-1a3012c447b3.html?seed=441349749&r=67778824#r_67778824)问题: (gxj1680): CEdit中,做个Undo和Redo功能(要多步),可以使原创 2011-12-21 11:34:19 · 1332 阅读 · 0 评论 -
(转)浅议Visual C++多线程设计
1 引言 随着Windows操作系统的发展,Windows95 和WindowsNT 操作系统开始支持多任务的调度和处理。基于此,其所提供的多任务空间使程序员可以完全控制应用程序中细节的运行,从而编写高效率的应用程序。 多任务的实现基于两方面,即多进程和多线程。所谓进程是指在系统中正在运行的一个应用程序,而线程是系统分配处理器时间资源的基本单元,也可讲是进程之内独立执行的一个单转载 2011-12-21 11:36:26 · 525 阅读 · 0 评论 -
拷贝CString到Clipboard和从Clipboard得到数据
/************************************************************************//* Copy data to clipboard/************************************************************************/BOOL CTools::CopyData原创 2011-12-21 13:48:31 · 625 阅读 · 0 评论