一个在IT行业摸爬滚打的老司机
一、C++编译模式 通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。
我在学习中经常遇到要重写DrawItem()的情况,但又有一个WM_DRAWITEM消息,它们是什么样的关系呢。如果我们要重写一个CButton取名为CMyButton,我们可以重写CMyButton的DrawItem()函数来实现我们的 需求,但CMyButton::DrawItem()是在什么时候调用呢?它是在它的宿主类的OnDrawItem()中被调用, OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct )正是对WM_DRAWiTEM的相应函数。
一、定义一个CImageList m_ImageList; 二、初始化加载图片列表: m_ImageList.Create(18, 18, ILC_COLORDDB | ILC_MASK, 0, 1); CBitmap camer; CBitmap camerg; camer.
MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor); ...
1.static_cast在编译时期强制转换,dynamic_cast在运行时期转换(较安全) 2.static_cast是c语言的强制转换代替品;dynamic_cast会运行时检查该转换是否类型安全,只在多态类型时合法,即该类至少具有一个虚拟方法。
1、前言相信不少麻油都已经积累了属于自己的代码库了,不知道是否有过这样的经历: A:听说你上次写了个通用XXX类库啊,我正好要用到,麻烦把dll发我一下。 B:好的,你等一下,我发给你。。。 。
Quote:Sandcastle, created by Microsoft, is a tool used for creating MSDN-style documentation from .
一款比较好用的 VS 插件,能够快速生成注释。 这是 Pro 版本,与标准版本相比,支持对类、文件批量生成注释并且可以生成 CHM 帮助文件。具体差异请转到: http://submain.
本文源码与文档下载 本章目标: 完成本章学习后,您将能够: Ø 了解什么是ActiveX控件 Ø 掌握如何编写基于MFC的ActiveX控件 Ø 掌握如何测试ActiveX控件 Ø 掌握如何测试ActiveX控件 Ø 了解ActiveX控件如何注册 重点:ActiveX控件的实现、测试及注册。
SQL触发器实例1定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
方法一: 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having coun...
定义 英文:Binary files 包含在 ASCII及扩展 ASCII 字符中编写的数据或程序指令的文件。计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本)文件,图形文件及文字处理程序等计算机程序都属于二进制文件。
今天仔细研究了一下关于TCP/UDP接收和发送数据的具体实现和下层接收数据的缓冲区,原理UDP从数据缓冲区中接收数据的方式和TCP从缓冲区中读取数据的方式是不同的,UDP接收缓冲区中也会依次保存接收到的数据,如果缓冲区满了则再接收的数据就会丢失,UDP接收数据和发送数据的次数应该是相同的,UDP不管你每次接收的数据的多少,只要你接收了一次数据那么就相当于接收了发送端某次发送的数据,而不管你接收的多少,本次的数据都将清空,注意:这里说的是本次的数据。
线程同步是一个很困扰大家的一个问题,在线程中有时需要必须的同步机制来控制程序的运行,但什么时候需要加同步机制,什么地方又不需要这些没必要的同步机制呢?在不需要同步的地方加上了同步机制只会降低程序的效率,所以不必要的地方就一定不要加上同步的代码。
etTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMER...
引言 众所周知,在调试、跟踪和执行应用程序的过程中,程序的日志能为这些工作提供大量有价值的运行信息。因此,程序的日志对应用程序的运行、维护至关重要。 在如何记录程序日志方面,通常有三种选择: 1、采用Log4CXX等公共开源日志组件:这类日志组件的特点是跨平台且功能比较强大,例如可以把日志发往另一台服务器或记录到数据库中等;另外,可配置性较高,可以通过配置文件或程序代码对日志进行很多个性化设置。
liblogger 待选为 glog、log4cplus、log4cpp、log4cxx 目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。
1.C++里有区别true是bool型的;TRUE是int型的,VC里这个是ms自己定义的; C++规定不允许只通过返回类型不同区别两个函数================================================你写错了吧……原函数声明是virtual BOOL Init...
1、int WriteToLog(char* str) { FILE* log; log = fopen("D:\\testlog.txt", "a+"); if (log == NULL){ //OutputDebugString("Log file open failed.
一、什么是DOM? 什么叫DOM,DOM是文档对象模型(Document Object Model,是基于浏览器编程(在本教程中,可以说就是DHTML编程)的一套API接口,W3C出台的推荐标准,每个浏览器都有一些细微的差别,其中以Mozilla的浏览器最与标准接近。
GDI+接口是Microsoft Whistler操作系统中的一部分,它是GDI的一个新版本,不仅在GDI基础上添加许多新特性而且对原有的GDI功能进行优化。在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相关的类,如Bitmap(位图类)、Brush(画刷类)、Color(颜色类)、Font(字体类)、Graphics(图形类)、Image(图像类)、Pen(画笔类)和Region(区域类)等。
基础类1、Dinkumware C++ Library参考站点:http://www.dinkumware.comP.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。
string定义: a) string s; //生成一个空字符串s string a="eholldfs"; a="dfgdfg"; cin>>a; b) string s(str) //拷贝构造函数 生成str的复制品 c) string s(str,stridx) //将字...
工作这么多年,一直使用Mysql, Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。
要是换在C#或Java,各种数据类型随便转换,有各种函数随便挑。但是在C++中还真没有那么简单。 我本来是希望能够将123,这样的int类型转换的“123”这样的string,或者C-style也可以。
在ocx控件中如果含有无模式对话框,那么当ocx在ie中显示时,往往接收不到 诸如tab,方向键和退格键。所有这些消息都被IE容器给截取了,对于这个问题,ms给出了解决方法: 首先: int CMyActiveXCtrl::OnCreate(LPCREATESTRUCT lpCreateStru...
1.要加一个头文件: #include 2.在控件头文件中加入: 1 DECLARE_INTERFACE_MAP()2 BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety)3 STDMETHOD(GetInterf...
原文地址:http://blog.csdn.net/collin1211/article/details/2483316 VC 项目中可以使用的路径宏: 宏 说明 $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。
1、画笔 有两种形式创建画笔 一是直接通过GetStockObject()函数来调用 二是通过创建画笔来调用 HPEN CreatePen( int fnPenStyle, // pen style int nWidth, // pen width COLORREF cr...
HBITMAP CopyDCToBitmap(HDC hScrDC, LPRECT lpRect){ if(hScrDC==NULL || lpRect==NULL || IsRectEmpty(lpRect)) { AfxMessageBox("参数错误"); return NULL; ...
在windows系列上做编程,gdi是一个很重要的技术点,有很多程序在运行多次后出现异常,除了众所周知的内存泄露以外,gdi资源泄露也是一个很直接的原因.今天就把我自己在编程中总结的一些经验给大家分享,欢迎高手补充.
介绍 CPen* SelectObject( CPen* pPen ); CBrush* SelectObject( CBrush* pBrush ); virtual CFont* SelectObject( CFont* pFont ); CBitmap* SelectObject( CBitmap* pBitmap ); int SelectObject( CRgn* pRgn ); CGdiObject* SelectObject( CGdiObject* pObject ); 函数功能:该函数选择一对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象。
所谓窗口子类化:改变一个已经存在的窗口实例的性质:消息处理与其他实例属性。 通常在SDK中所谓的窗口子类化就是改变一个窗口函数(如GetWindowLong()和SetWindowLong())通过这两个函数来设置窗口的属性等; 而今天我们主要内容是介绍MFC中的子类化,它跟SDK中的子类化不太一样: 所有MFC窗口有相同的窗口函数,由该窗口函数根据窗口句柄查找窗口实例,在把消息映射到该窗口类(class)得消息处理函数上。
在开发的时候,经常要写条SQL语句将信息插入表中,插入的数据如果字段是date类型,就必须将date类型转换成字符串String类型在通过sql语句插入数据库。这是我字段唯一的方法,如果有高人请另赐教! 我的解决方法是用oracle中的to_date()方法,具体看下面的例子 Oracle中...
oracle --> mysql to_char(sysdate,'yyyy-mm-dd')-->date_format(sysdate(),'%Y-%m-%d');t...
共三部分: 第一部分:oracle sql日期比较: http://www.blogjava.net/forker/archive/2007/09/07/143467.html#Post 第二部分:Oracle 获取当前日期及日期格式 http://blog.
下面将分别介绍在MFC ActiveX和ATL中如何标记一个控件为安全的控件。 要标记一个MFC ActiveX控件为安全,可以仿照下面代码修改而得: // CardScan.cpp : CCardScanApp 和DLL 注册的实现。
Download demo project - 231 Kb Introduction ActiveX is a Microsoft technology developed in the mid 90’s, that allows for the creation of applet-like...
DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。 要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。
在项目中使用ExtJS已经有一段时间了, 对于这个庞大的Script类库有了一定的了解, 在Ext的使用上也有了一定的经验, 现将这些经验做一下总结, 作为一个入门材料给大家分享。 对于Ext库, 不要被它的庞大所吓倒, 只要静下心来看SDK, 多做一些练习, 还是很容易上手的。
抽时间研究了一下 ExtJS 3.0 内置的图表功能, 感觉还是挺不错的,于是就做了这个类图,有兴趣的可以看一下。 ExtJS 的 SDK 文档这样描述这个包: The Ext.chart package provides the capability to visualize data with flash based charting.
ExtJS 对其 Chart 的文档一直是语焉不详, 所以也一直没有从其文档中找到自定义 ExtJS.chart.PieChart 各个分块颜色的方法, 通过查找 YUI Chart 的文档( ExtJS 的 chart 就是 YUI Chart),终于找到了自定义各个分块颜色的方法,通过设置 se...
结构体能自由组装数据,是一种很常见的数据打包方法。当我们定义一个结构体后,没有初始化就使用,就会使用到垃圾数据,而且这种错误很难发现。对于定义的任何变量,我们最好都先初始化。 除了使用memset和ZeroMemory之外,有没有更简单的方法初始化呢?因为有时候每定义一个结构体,就使用一次memset,也会觉得很繁琐。
字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。
位运算是非常迅速的,因为它直接对内存中的二进制数据进行操作。 按位运算除了,按位与,按位非,按位左移,按位右移,还有按位异或。 按位异或运算定义, 1 ^ 1=0 1 ^ 0=1 0 ^ 1=1 0 ^ 0=0 异或,就是“看看你们到底一样不一样。
按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0 例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。
本文配套程序下载地址为:http://download.csdn.net/detail/morewindows/5128654 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8634451 欢迎关注微博:http://weibo.
1. 用JavaScript检测系统中是否已经安装了某个ActiveX控件 try { var ax = new ActiveXObject("控件名称"); alert("已安装"); } catch(e) { alert("未安装"); } 如果组件不是自己编写的,要确定控件名称,首先要知道控件的CLSID。
为了满足将网站加入到可信站点中,使用系统的控件,在弹出窗口的时候不用提示用户。可以通过下面的方法实现:首先,了解一下可以设置的值和含义。 可信站点的注册表项目录HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet S...
数据库查询时间没有了时分秒的解决办法 问题出处,公司一个项目中使用动态sql方式查询Oracle数据库,在展示时Date类型字段只展示日期,无时分秒。 分析: 1、众所周知Oralce的日期类型有很多种,Date ,Timestamp等。