摘要:VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:这些参数究竟代表什么意思了?可以通过在CMD窗口下输入cl /help(注1)查看各个参数的含义。 C/C++ COMPILER OPTIONS -OPTIMIZATION-优化/O1 minimize space/Op[-] improve floating-pt consistency/O2 maximize speed /Os favor code spa
阅读全文
08 2012 档案
摘要:在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即<类名>::<静态成员名>。在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象。希望阅读本文可以使读者对类的静态成员变量和成员函数有更为深刻的认识。第一个例子,通过类名调用静态成员函数和非静态成员函数cl
阅读全文
摘要:参考资料 Navicat for Oracle Cannot create oci environment http://blog.sina.com.cn/s/blog_695ef5280100qzth.html 一 环境: XP+Oracle10+Navicat 8 or Oracle 二 配置连接名出错:如图三 解决方式: 菜单中: 工具--->选项,如图 选择电脑中安装Oracle的相关目录!
阅读全文
摘要:一.IDE基础配置 1.字体VC6中“Tools→Options→Format→Font”配置字体;VC2005中“工具→选项→环境→字体和颜色”配置字体。编写代码一般采用等宽字体,等宽点阵(位图)字体,相对矢量字体而言具有兼容性好和显示清晰的优点。常用的编程等宽字体包括Fixedsys(VC6和notepad御用字体)、Consolas、YaHei Mono。VC6默认可选字体只有Fixedsys和Terminal,可通过修改注册表来改字体,在HKEY_CURRENT_USER/Software/Microsoft/DevStudio/6.0/Format下面有几个子键,可以修改Source
阅读全文
摘要:1、字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' )。2、字符数组与字符串在c语言
阅读全文
摘要:C++中的预处理命令一、预处理的由来: 在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)。 二、常见的预处理功能: 预处理器的主要作用就是: 把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有: 文件包含,条件编译、布局控制和宏替换4种。 文件包含: #include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。 条件编译: #if,#ifndef,#if...
阅读全文
摘要:C/C++编译系统编译程序的过程为预处理、编译、链接。预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理器指令以#号开头标识,末尾不包含分号。预处理命令不是C/C++语言本身的组成部分,不能直接对它们进行编译和链接。C/C++语言的一个重要功能是可以使用预处理指令和具有预处理的功能。C/C++提供的预处理功能主要有文件包含、宏替换、条件编译等。 1、文件包含 预处理指令#include用于包含头文件,有两种形式:#include <xxx.h>,#include "xxx.h"。尖括号形式表示被包含的文件在系统目录中。如果被包含的文
阅读全文
摘要:一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/C++ à Preprocessor definitions VC2005 中: 项目属性 à 配置属性 à C/C++ à 预处理器定义 WIN32 :指明是 Window 32 位系统的编译器,一般用作平台识别。 _MBCS/_UNICODE :指明该工程使用的字符集(多字节字符集 /UNICODE )。 在 VC6.0 的 “Project Setting à C/C++ à Project Options” 处将会有 /D &quo
阅读全文
摘要:VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”这个错误,那 么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的 manifest文件,程序在目标机器上没有找到这些库和配置文件,因此导致了这个错误。出现这种情况的VC9编译器可能存在3个版本,接下来分别阐明:1、没有打过任何补丁的VS2008该版本对应的CRT/MFC/ATL库的版本号为9.0.21022.8,这个版本号在后面
阅读全文
摘要:字符串,顾名思义是由字符组成的字符串,在标准C,标准C++,MFC中字符串这一功能的实现是不相同的,C++完全兼容了C。1. 标准C中的字符串 在标准C中没有string这样的数据类型,C中的字符串是有char类型的字符数组或者char类型的字符指针来实现的。例如: char name[26]="This is a C-style string";或者 char *name="This is a C-style string"; 类型的字符串以\0为结束标记,所占内存是实际子符长度+1,其初始化和赋值都要逐个字符的赋值,修改不辨,粒度太小,很不直观,是程
阅读全文
摘要:sizeofsizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节。返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的头文件stddef.h的C++版本。他是一个和机器相关的unsigned类型,其大小足以保证内存中对象的大小。1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggr...
阅读全文
摘要:char acStr[] = "aaaaa";//这个是字符数组,只含有5个字符char *pcStr = "aaaaa";//这个是字符串,含有6个字符,即5个a加一个结束符'\0'输出的结果 strlen()长度都是5, 所以即便是字符串,最后取长度的时候,也不考虑\0: strlen()计算字符串长度,忽略结束符 \0char *p = "hello";char *q = "world";char o[] = "hello";cout<<"hello&
阅读全文
摘要:一、获得绘图的窗口句柄方法(详细参数及其调用可以看考MSDN):1、 HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)2、 HWND WindowFromPoint(POINT& Point)3、 BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam) BOOL CALLBACK
阅读全文
摘要:http://my.oschina.net/u/131904/blog/39804在mfc工程中控件或者窗口位置的调整是经常遇到的,特别是基于对话框的工程。位置的调整包括坐标、长度和宽度的变化,一般在窗口类的OnSize函数中实现。控件位置的调整涉及的函数有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下:GetWindowRect():获得窗口在屏幕上的矩形坐标,调整控件位置时必须首先获得该屏幕坐标;ScreenToClient():转换屏幕坐标到客户区坐标,如果为子窗口,
阅读全文
摘要:MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用, 然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数4.OnWndMsg() 该函数的功能首先按字节对消息进行排序,对于WM_COMMAND消息,调用OnCommand()消息 响应函数,对于WM_NOTIFY消息 调用On
阅读全文
摘要:一、简介 SQLite是一个基于文件的轻量级数据库,但功能还挺强,速度也很快,对于小型数据库应用开发绝对够用了。使用起来也非常方便,下面的介绍可以看出来,使用起来真的非常简单。二、官方网站 Sqlite的官方网站www.sqlite.org,在该网站可以下载最新的sqlite版本。三、辅助工具工具 Sqlite数据库的管理工具有SQLiteManager、SqliteAdmin等。SqliteManager只有英文版,但功能强大,有个问题就是不支持ANSI字符集的汉字显示。其自带的帮助文档有SQL语句的详细介绍,对于不熟悉Sql语句的人来说很方便。而且它的很多操作都有自动的SQL语句提示,对.
阅读全文
摘要:printf可能是许多程序员在开始学习C语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类型的数据构造成字符串时,sprintf的强大功能很少会让你失望。 由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf比printf有用得多。所以本文着重介绍sprintf,有时也穿插着用用pritnf。sprintf是个变参函数,定义如下:int sprintf( char *buffer, const c
阅读全文
摘要:getenv(取得环境变量内容) 相关函数 putenv,setenv,unsetenv 表头文件 #include<stdlib.h> 定义函数 char * getenv(const char *name); 函数说明 getenv()用来取得参数name环境变量的内容。参数name为环境变量的名称,如果该变量存在则会返回指向该内容的指针。环境变量的格式为name=value。 返回值:执行成功则返回指向该内容的指针,找不到符合的环境变量名称则返回NULL。 范例?#include<stdlib.h> mian() { char *p; if((p = gete..
阅读全文
摘要:一个很好的编程随想的博客http://program-think.blogspot.com/2009/03/producer-consumer-pattern-0-overview.html架构设计:生产者/消费者模式[0]:概述1、如何确定数据单元2、队列缓冲区3、环形缓冲区4、双缓冲区生产 消费2010-06-01 10:13#include <boost/thread/thread.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/condition_variable.hpp>#
阅读全文
摘要:在参考文献基础上。补充和完善了。Matlab与C/C++混合编程接口及应用 摘要:Matlab具有很强的数值计算和分析等能力,而C/C++是目前最为流行的高级程序设计语言,两者互补结合的混合编程在科学研究和工程实践中具有非常重要的意义。从Matlab调用C/C++代码及C/C++调用m文件两方面,深入地研究了它们之间混合编程的原理和实现机制,并且给出了具体条件下的混合编程方法和步骤。实验表明,给出的Matlab与C/C++混合编程接口及应用方法是有效、实用的。 1引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算、数据分析处理、系统分析、图形显示甚至符号运算等功能[1]。...
阅读全文
摘要:Visual Studio 2008 环境变量的配置(改为:Visual Studio 2008 中程序路径配置 更合理)在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试。这些动态链接库,往往都是测试版本或是开发中的版本,或者会有若干个版本;这个时候,如果直接把 dll 所在目录加到 PATH 里,则会有潜在冲突的危险;如果直接拷贝到 Visual Studio 的目录下,假如测试工程太多,每次有新版本的动态链接库更新时,你需要更新若干次,拷贝、粘贴苦不堪言。在开发过程中,究竟怎样来让 Visual
阅读全文
摘要:Visual Studio 2008 和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用。 可以在项目的“工具”“属性页”对话框中任何接受字符串的位置使用这些宏。这些宏不区分大小写。关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139宏说明$(RemoteMachine)在“调试”属性页上设置为 Remote Machine 属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(Configuration)当前项目配
阅读全文
摘要:在vs2008的Project->Property设置里经常会看到类似$(IntDir)、$(OutDir)、$(ProjectName) 的预定义宏。以vc2008为例,有时候我们在引用别的库时需要在项目设置里添加额外的头文件和库文件路径,我们不想每个路径都用一大堆的“../.. /include”或绝对路径表示,因为不但繁琐而且万一路径改变每处都要修改,不方便维护,我们希望能自定义类是$(myDir) = c:/myPrj/include的宏。有人说: “vcproj工程设置文件里,完全可以定义一个变量 VAR=whatwhatwhat,然后"$(VAR)",类似
阅读全文
摘要:Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。 1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件拖放到上面。打开 Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble;在后面的代码中会不断使用这个变量。2、向控件添加 Items 1) 在Combo Box控件属性的Data
阅读全文
摘要:续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.csdn.net/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。6、禁止拖动表头 重载OnNotify消息响应函数,屏蔽两个消息通知码:HDN_BEGINTRACKW 和HDN_DIVIDERDBLCLICKW。示例如下: [cpp] view plaincopyprint?BOOLCXXXX::OnNotify(WPARAMwParam,LPARAMlP
阅读全文
摘要:本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。 分为两篇来进行总结。本篇重点总结:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色1、基本操作 分别从下面四点来介绍CListCtrl的基本操作: ①设置列表视图.
阅读全文
摘要:在MFC中滑动条(CSliderCtrl)是个常用的控件,用法如下: 主要要方法有:1、设置、取得滑动范围:void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE ); void GetRange( int& nMin, int& nMax ) const;2、设置、取得按下左右箭头滑动间隔:int SetLineSize( int nSize ); int GetLineSize( ) const;3、设置、取得按下PgUp、PgDown时滑动间隔:int SetPageSize( int nSize ); int Ge
阅读全文
摘要:动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Create()函数来创建。 而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建过程: 1.建立控件ID号: ID号是控件的标识,创建控件前必须先为它设置一个ID号。 打开资源中的“S...
阅读全文
摘要:http://blog.sina.com.cn/s/blog_6163bdeb0100pcld.html为窗口或其中的控件添加提示框,可以使用MFC的类CToolTipCtrl,使用方法如下1.在窗口的类定义中添加变量说明:class CTooltipTestDlg : public CDialog{…public:CToolTipCtrl m_tt;…}2.在对话框的OnInitDialog()函数中添加如下代码EnableToolTips(TRUE);m_tt.Create(this);m_tt.Activate(TRUE);CWnd* pW=GetDlgItem(IDC_CHECK1);
阅读全文
摘要:很多的界面设计都需要有Tip提示,下面描述一下Tip的简单使用方法: 1. 首先要New一个CToolTipCtrl的对象m_pContentTip 2. 调用CToolTipCtrl的create函数,指定其父窗口。可以为某个控件,也可以为this。一般设为this。m_pContentTip->Create( this, TTS_ALWAYSTIP );3. AddTool。此函数是设置与某个控件关联的Tip文本。此处可以为多个控件添加不同的提示信息。 m_pButtonTip->AddTool( GetDlgItem( 控件ID ), 文本 ); //#add 一定要用Add
阅读全文
摘要:今天在网上看到一篇VC项目管理的文章,感觉非常有用。特别是对大、中型项目的规范化、条理化管理非常有帮助,特转贴这里。VC 2005 解决方案的目录结构设置和管理Roger (roger2yi@gmail.com)一个中等规模的解决方案通常都会包含多个项目,其中一些项目产出静态库,一些产出动态库,一些用于单元测试,还有的产出最终的应用程序执行档。除此以外,根据项目的需求,还会使用一些第三方的库。所以为解决方案设置一个合理的目录结构,不但可以使得代码管理更井井有条,项目成员之间也更容易相互配合,更重要的是能够使得最终应用程序的安装包制作,源代码打包发布和转移变得十分容易。解决方案与项目:从VC6之
阅读全文
摘要:HANDLE hMutex;hMutex = ::CreateMutex(NULL, FALSE, NULL);::WaitForSingleObject(hMutex, INFINITE); // 1::WaitForSingleObject(hMutex, INFINITE); // 2好多初学者都认为,设置为FALSE就是没有获得获得信号。。 其实这是错误的。真确的理解是:CreateMutex()函数的第二个参数是FALSE,表示刚刚创建的这个Mutex不属于任何线程也就是没有任何线程拥有他,一个Mutex在没有任何线程拥有他的时候,他是处于激发态的, 所以处于有信号状态。当你调用::
阅读全文
摘要:如何终止线程的运行(C/C++)想要终止线程的运行,可以使用以下方法:1、线程函数返回(最好使用该方法)。2、通过调用ExitThread函数,线程将自行撤消(最好不使用该方法)。3、同一个进程或另一个进程中的线程调用TerminateThread函数(应避免使用该方法)。4、ExitProcess和TerminateProcess函数也可以用来终止线程的运行(应避免使用该方法)。下面将详细介绍终止线程运行的方法:1-4,并说明线程终止运行时会出现何种情况:5。1、线程函数返回始终都应该将线程设计成这样的形式,即当想要线程终止运行时,它们就能够返回。这是确保所有线程资源被正确地清除的唯一办法。
阅读全文
摘要:在VC编程中常常碰到的.lib文件有一个需要注意的地方是:静态库——函数和数据被编译进一个二进制文件(扩展名问.lib)。在使用静态库的情况下,在编译连接可执行文件时,连接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.exe)文件,当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。动态库——在使用动态库时,往往提供两个文件:一个引入库(.lib)文件和一个DLL(.dll)文件。虽然引入库的后缀名也是".lib",但是,动态库的引入库文件和静态库文件有着本质的区别。对一个dll来说,器引入库文件(.lib)包含该DL
阅读全文
摘要:原因:#pragma comment (lib,"xxx.lib")//默认和引用的CPP文件在一个文件夹中解决方法1:将xxx.lib和调用pragma comment的源文件放在一个目录(注意是调用它的源文件,不是头文件)。解决方法2:也可以在xxx.lib前加上全路径名如:#pragma comment(lib, "c:\\windows\\system32\\xxx.lib")。解决方法3:修改项目属性中,配置属性--》连接器-->常规--》附加库目录 中加上xxx.lib所在目录。解决方法4:工具--》选项--》项目和解决方案--》vc+
阅读全文
摘要:学了264有将近3个月有余,好多时候都在学习老毕的书和反复看JM86的代码,最近才找到264分析两大利器:264VISA和Elecard StreamEye Tools。不由得感叹,恨不逢同时。 简单的说下这两个软件: 264visa 强力的h264实时分析工具 ,能分析各种场合下的h264资源,适用于h264开发者,学习者。在图像分析上,VISA还是比EYE更加厉害,它包括了滤波前以及预测残差等等数据的输出。 下面来说下另一款软件:Elecard StreamEye ToolsElecard StreamEye Suite是一套用于专业视频压缩领域的功能强大的工具 ,能够帮助用户进行有效的.
阅读全文
摘要:MPEG-1压缩的基本思想:帧内压缩和帧间压缩。其次,时间相关性的统计分析:统计的结果表明,在间隔1~2帧的图像中,各像素只有10%以下的点,其亮度差值变化超过2%,而色度差值的变化只有1%以下。采用的压缩方法: 分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。1.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;2.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;3.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。I帧:帧内编码帧I帧特点:1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可
阅读全文
摘要:2011-11-28 9:45http://www.360doc.com/content/11/0718/17/474846_134326279.shtmlmpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案。注意:是2bit,不是byte,下面是各类型帧与2bit的对应关系: 00: I Frame 01: P Frame 10:B Frame 为了更好地说明,我们举几个例子,以下是16进制显示的视频编码: 00 00 01 b61034 78 97 09 87 06 57 87 …… I帧 00 00 0...
阅读全文
摘要:转自:http://blog.csdn.net/abcjennifer/article/details/6577934视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。Intra coded frames, Predicted pictures, and Bi-directional predictive pictures。I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。 P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面
阅读全文
摘要:winrar.exe 命令行参数[语法]RAR <命令> [ -<开关> ] <压缩文件> [ <@列表文件...> ]RAR [ <文件...> ] [ <解压路径/> ]一.简单的例子和说明:压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/压缩多个文件winrar a -ag -ibck bak.rar filename1 filename2参数说明winrar.exe:运行winrar,如果winrar.exe没在默认路径中则需要指明路径,如c:/Prog
阅读全文
摘要:我用VC做TOOL TIP很多次了,但每次都要再研究一遍.虽然说学而时习,应该的,但主要还是由于自己懒.今天一定要记下来.以后再用的时候,就是参考.也请阅读此文的朋友记下来,将来查阅用.用VC实现TOOL TIP.比较复杂,其实也简单,但MFC帮助一些窗口实现,而另一些窗口又不实现,倒搞得复杂了.最开始我用WM_MOUSEMOVE消息,然后用CToolTipCtrl::Pop,这个方法太笨.不建议用.除非需要自定义.MFC对TOOL TIP的支持不错的.缺省情况CFrameWnd支持很好.然后是CWnd.主要体现在TTN_NEEDTEXT消息的支持和OnToolHitTest的支持.TTN_N
阅读全文
摘要:在这篇文章中,我为大家收集了20个基于jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示。Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 jQuery 框架很容易实现各种基于 Ajax 技术实现的功能。我们一起来看看下面这些优秀的分页插件。 1.Client-side jQuery pagination plugin : jPagesjPages 是一款非常不错的客户端分页插件,有很多特色,例如自动播放、按键翻页、延迟加载等等。浏览详情在线演示2. jPaginate: A Fancy jQuery Pagination Plugin
阅读全文
摘要:设置VS2008和IE8 调试ATL控件VS2008设置篇:设置VS2008 通过IE8 调试ATL的ActiveX控件的步骤如下:(1)设置项目属性通过菜单项 “项目—》你的项目属性”如下图:(2)在弹出的属性页对话框中选中“配置属性—》调试”,在右边填入下列参数:命令:C:\Program Files\Internet Explorer\iexplore.exe(你的IE8执行文件位置)工作目录:$(InputDir)FileUploader.htm(其中FileUploader.htm更换成VS为你生成的Html文件名。附加:否。(指示调试器不要附加现有IE进程,而是新建一个)其它选项采
阅读全文
摘要:VC/MFC如何设置对话框背景颜色2007-06-19 19:571.重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。 ---- ①在CExampleDlgDlg的头文件中,添加一CBrush的成员变量: class CExampleDlgDlg : public CDialog {... protected: CBrush m_brush; ... }; ---- ②在OnInitDialog()函数中添加如下代码: BOOL CExampleDlgDlg::OnInitDialog() { ... //.
阅读全文
摘要:先看图: 窗体扩充过程中:窗体完全显示:要想实现动画窗体显示,需要把MoveWindow函数和定时器结合使用,MoveWindow函数可以改变指定窗口的位置和大小,结合定时器以后可以在一定时间内动态改变窗口的位置和尺寸。MoveWindow函数的原型如下: 函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint ); 参数 hWnd指定了窗口的句柄 x指定了CWnd的左边的新位置。 y指定了CWnd的顶部的新位置。 nWidth指定了CWnd的新宽度。 n...
阅读全文
摘要:说起来挺简单的,一个对话框关闭时要依次调用该类的DestroyWindow-OnDestroy-PostNcDestroy,根据关闭的方法不同,在这些函数之前会调用OnOK、OnCancle或者OnClose。 这里要说的是,模态对话框的消息循环要到调用了PostNcDestroy之后才真正的结束,即ContinueModal循环在这里才结束,然后类的析构函数将被调用,这个对话框才真正的被销毁了。 如果一个模态对话框还有一个模态的子对话框,那就更要注意了。如果子对话框还在显示的时候,父对话框由于某种原因关闭了(如从其他线程接收到了WM_CLOSE消息),父对话框在执行完OnClose函数后会.
阅读全文