- 博客(32)
- 资源 (80)
- 收藏
- 关注
转载 CListCtrl 使用技巧
以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标
2012-05-31 17:08:07 377
原创 如何实现屏幕截图
BMP文件格式分析 简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各图像绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图文件格式与显示设备有关,因此把这种BMP图象文件格式称为设备相关位图DDB(device-dependent bitma
2012-05-31 14:19:29 1001
转载 mpx程序from 阿明
1、MapX折线图元的画法 CMapXPoints pts; CMapXPoint pt; CMapXStyle sty; CMapXFeature f,newobj,newobj1,newobj2; if(!pts.CreateDispatch(pts.GetClsid())) { TRACE0("Failed t
2012-05-29 16:28:39 584
原创 MapX的一些注意事项
1.要在MAPX中自己创建一个对象,必须调用CreateDispatch(Pnts.GetClsid());创建一个dispath并将其与一个Coledispathdriver对象关联。这样才能调用该对象的方法。2.异常的的捕获,在开发中,我们在每个调用的地方都添加如下代码 catch (COleDispatchException *e) { e->ReportError();
2012-05-29 16:23:47 788
原创 Maxp中图元的创建
在mapx应用开发中,我们需要创建各种类型的图元,下面做个简单的总结:画线COleVariant vtPoints;vtPoints.vt=VT_DISPATCH;vtPoints.pdispVal=Pnts.m_lpDispatch;vtPoints.pdispVal->AddRef();Feature=FeaFac.CreateLine(vtPoints); //按照点
2012-05-29 15:53:12 919
原创 Mapx中如何显示一个符号
在MAXP应用程序开发中,最基本的一个功能是在地图上显示一个目标,这个目标一般用一个符号表示,在地图上表示为一个图标。CMapXFeatureFactory FeaFac; CMapXLayer Layer;CMapXFeature Feature;CMapXStyle Style;double centerX,centerY; //得到地图的中心center
2012-05-29 15:40:39 919
转载 MapX开发
我用MapInfo公司的MapX开发过几个项目。在项目的开发过程中,也接触了一些使用相同技术的公司和开发人员,感觉到他们的开发过程常常被一些问题所困扰,却得不到很好的解决。在这里,我把我在开发过程中积累的一些经验写出来,希望能起到抛砖引玉的作用。二、开发经验1、如何在MapX下读取属性值,这里介绍三种方法:1)由Layer对象的KeyField属性来设立要读取属性值的字段名。接着,由F
2012-05-29 13:31:37 746
转载 MAXP开发(二)
1:对LABEL的操作CMapXLayer.SetAutoLabel(true); 设置图层是否自动标记CMapXLayer.GetLabelProperties().SetVisible(true); 设置标记是否可见CMapXLayer.GetLabe
2012-05-29 11:37:23 444
转载 MAPX开发(一)
1:创建地图。CMapX.Create(NULL,WS_VISIBLE,CRect(0,0,300,300),this,IDC_MAP),其中CRect指明地图所占区域大小,IDC_MAP是控件ID,在单文档中新建一个没有任何绑定的ID,在对话框中可以直接用对话框的ID。2:加载图层。CMapX.GetLayer().Add(“path”);其中PATH是TAB格式的MAPINFO文件3:
2012-05-29 11:33:38 1195
转载 COleDispatchDriver
这段时间研究mapx地图控件,里面的类都是基于COleDispatchDriver,因此,需要了解COleDispatchDriver这个类,COleDispatchDriver没有基类。COleDispatchDriver类实现OLE自动化中的客户方。OLE调度接口为访问一个对象的方法和属性提供了途径。COleDispatchDriver的成员函数连接,分离,创建和释放一个IDispat
2012-05-29 09:02:50 5665
原创 如何在在MapX中画线
响应组建的按下事件,下面是具体的实现代码。void CMapView::OnMouseDownMap(short Button, short Shift, float X, float Y) { CMapXPoints Pnts; //点集对象 CMapXFeatureFactory FeaFac; CMapXLayer Layer; CMapXF
2012-05-28 14:20:28 1784
原创 MapX画点
由于MAPX是以组建的形式提供给我们,要在上面画点,就必须相应鼠标事件:添加宏ON_EVENT(CMapView, IDC_MAP, DISPID_MOUSEDOWN /* MouseDown */, OnMouseDownMap, VTS_I2 VTS_I2 VTS_R4 VTS_R4)以及实现事件的处理函数void CMapView::OnMouseDownMap(short
2012-05-28 14:15:55 1209
转载 Boost.Bind用法详解(二)
函数组合,Part II在SGI STL中的另一个常用的函数组合是 compose1 ,在 Boost.Compose 中是compose_f_gx 。这些函数提供了用一个参数调用两个函数的方法,把最里面的函数返回的结果传递给第一个函数。有时一个例子胜过千言万语,设想你需要对容器中的浮点数元素执行两个算术操作。我们首先把值增加10%,然后再减少10%;这个例子对于少数工作在财政部门的人来说
2012-05-15 14:43:53 779
转载 Boost.Bind用法详解(一)
Boost.Bind 为函数和函数对象提供了一致的语法,对于值语义和指针语义也一样。我们将从一些简单的例子开始,处理一些简单绑定的用法,然后再转移到通过嵌套绑定进行函数组合。弄明白如何使用bind 的关键是,占位符的概念。占位符用于表示提供给结果函数对象的参数,Boost.Bind 支持最多九个参数。占位符被命名为_1, _2,_3, _4, 直至_9, 你要把它们放在你原先放参数
2012-05-15 14:42:49 1080
转载 Library 9. Bind
Bind 库如何改进你的程序?使函数和函数对象适用于标准库算法使用一致语法创建绑定器强大的函数组合在使用来自于标准库的算法时,你常常需要提供给它们一个函数或一个函数对象。这是对算法的行为进行定制的一个好方法,但你通常需要写一个新的函数对象,因为你没有组合函数或改变参数的顺序等所需的工具。虽然标准库已经提供了一些可用的工具,如bind1st 和 bind2nd
2012-05-15 14:41:06 467
转载 Library 10. Lambda
Lambda 库如何改进你的程序?对函数和函数对象进行适配,使之可用于标准库算法绑定参数到函数调用将任意的表达式转换为可以兼容标准库算法的函数对象就地定义匿名函数,提高代码的可读性和可维护性在需要的时间和地点实现谓词在使用标准库或其它采用相似设计的库时,需要依靠函数或函数对象来对算法进行配置,你通常要编写很多小的函数对象来执行一些非常简单的操作。
2012-05-15 14:40:06 389
转载 Boost.Lambda 用法详解(一)
与其它许多 Boost 库一样,这个库完全定义在头文件中,这意味着你不必构建任何东西就可以开始使用。但是,知道一点关于lambda 表达式的东西肯定是有帮助的。接下来的章节会带你浏览一下这个库,还包括如何在 lambda 表达式中进行异常处理!这个库非常广泛,前面还有很多强大的东西。一个lambda 表达式通常也称为匿名函数(unnamed function)。它在需要的时 候进行声明和定
2012-05-15 14:39:46 3341
转载 Boost.Lambda 用法详解(二)
Boost.Lambda 支持C++中的所有算术操作符,因此几乎不再需要仅为了算术函数对象而包含 。以下例子示范了这些算术操作符中某些的用法。vector vec中的每个元素被加法和乘法操作符修改。#include #include #include #include "boost/lambda/lambda.hpp"int main() { using name
2012-05-15 14:39:11 1127
转载 Boost.Lambda 用法详解(三)
Lambda 表达式中的类型转换在 lambda 表达式中有四种特殊的"转型操作符"[7] 来进行类型的转换:ll_dynamic_cast,ll_static_cast, ll_reinterpret_cast, 和ll_const_cast. 这些名字与对应的C++关键字不一样,因为它们不能被重载。要使用这些类型转换,就要包含头文件"boost/lambda/casts.hpp
2012-05-15 14:38:04 797
转载 Library 11. Function
Function 库如何改进你的程序?保存函数指针和函数对象,用于后续的调用在进行回调的设计中,常常需要保存函数和函数对象,而且某些函数或类也是通过函数指针或函数对象来配制其客户化功能。通常,函数指针用于实现回调及延时函数。但是,仅仅使用函数指针会有很多限制,更好的方法是采用泛型机制来定义要被保存的函数的署名特征,而让调用者来决定提供哪一种的类函数实体(函数指针或函数对象)。这
2012-05-15 14:36:17 492
转载 boost::function用法详解
要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从"boost/function/function0.hpp" 到"boost/function/function10.hpp". 如果你知道你想保存在function 中的函数的参数数量,这样做可以让编译器仅包含需要的头文件。如果包含"boost/func
2012-05-15 14:35:50 477
转载 Signals 库如何改进你的程序?
Signals 库如何改进你的程序?函数和函数对象的灵活多点回调健壮的触发器及事件处理的机制兼容于函数对象工厂,如 Boost.Bind 和 Boost.LambdaBoost.Signals 库具体化了信号(signals)和插槽(slots),信号指的是某种可被"抛出"的东西,而插槽是接收该信号的连接者。这是一种著名的设计模式,它还有另外一些名字Obse
2012-05-15 14:33:50 494
转载 Boost.Signals用法详解
当你面对需要用多段代码来处理一个事件的情况时,典型的解决方案有:用函数指针进行回调,或者直接对产生事件的子系统与处理事件的子系统之间的依赖性进行编码。这种设计常常会导致循环的依赖性。通过使用 Boost.Signals, 你将获得灵活性和解耦。要开始使用这个库,首先要包含头文件"boost/signals.hpp".[2] [2] Boost.Signals库和
2012-05-15 14:23:02 2874
转载 Boost源码剖析之:容器赋值-assign
相信大多数使用STL的人都是为了使用里面的容器,使用vector、list、map的程序员对以下代码可以说是非常熟悉了:vector i_v;i_v.push_back(1);i_v.push_back(2);i_v.push_back(3);i_v.push_back(4);i_v.push_back(5);挺枯燥,是吧?用boost的assignme
2012-05-15 14:21:23 507
转载 Boost源码剖析之:增强的std::pair--Tuple Types (二)
4 初始化的全过程然而在跟踪之前我们须了解tuple的构造函数,因为所有初始化参数由此进入:template class T0, class T1, class T2, class T3, class T4,class T5, class T6, class T7, class T8, class T9>class tuple :public detail::map_t
2012-05-15 14:20:45 817
转载 Boost源码剖析之:增强的std::pair--Tuple Types (一)
0 动机[1]假设你有这样一个函数:它接受两个整型数据并返回它们整除的结果,像这样:int DevideInts(int n,int d){ return n/d;}但是我们可能需要更多信息,比如,余数。函数的返回值已被占用,我们可以为函数加一个参数:int DevideInts(int n,int d,int& Remainder
2012-05-15 14:19:48 523
转载 Boost源码剖析之:型别分类器——type_traits
动机1. 分派下面有一个模板函数,假设一个动物收容组织提供了它,他们接受所有无家可归的可怜的小动物,于是他们向外界提供了一个函数接受注册。函数看起来像这样:template //T表示接受的是何种动物void AcceptAnimals(T animal){ ... //do something};但是,如果他们想将猫和狗分开处理(毕
2012-05-15 14:18:16 918
转载 Boost源码剖析之:泛型指针类any之海纳百川
C++是强类型语言,所有强类型语言对型别的要求都是苛刻的,型别一有不合编译器就会抱怨说不能将某某型别转换为某某型别,当然如果在型别之间提供了转换操作符或是标准所允许的一定程度的隐式转换(如经过非explicit构造函数创建临时变量的隐式转换或是在int,long这些基本型别间的)又另当别论。总的说来,为了保持型别安全,C++有严厉的要求。然而有时候程序员可能有这样的需要:int i;
2012-05-15 14:12:51 436
转载 C++ Boost Assign 文档(翻译) (二)
o list_inserter 类 这个类负责向容器中插入元素。而且,它还是扩展库以支持自定义容器的关键所在。纲要namespace boost{ namespace assign { templatevoid > class list_inserter
2012-05-15 14:10:30 573
转载 C++ Boost Assign 文档(翻译) (一)
1、简介 这个库的设计目的是为了使容器可以更方便地填充数据,这主要借助重载通过重载operator,()和operator()()实现。对两个操作符重载使得构造值列表然后把它们拷贝到相应容器里成为可能:逗号分隔的列表: vectorint> v; v += 1,2,3,4,5,6,7,8,9;括号分隔的列表: mapint>
2012-05-15 14:06:46 490
转载 VC下完全或部分编译boost
一、下载boost在boost的官网boost.org有下载地址http://sourceforge.net/projects/boost/.以Boost 1.33.1 Released 为例,直接下载。程序安装后解压缩到目录\boost_1_33_1.二、完整编译boost1、编译bjam在控制台下面运行...\boost_1_33_1\tools\build\jam_src目录
2012-05-15 14:04:16 713
转载 编译 boost 的正则表达式部分
VC利用boost库解析正则表达式最近做数据库涉及到解析sql语句,觉得最好的办法是写正则表达式解析,由于vc6没有解析函数,自己写又不甘心,后来从网上找到了boost库,解决了这个问题.boost下载地址:http://www.boost.orgboost库安装比较麻烦,需要自己编译源文件,我整理了一下,如果仅仅需要做正则表达式,按下面的代码敲就行了.cmdvcvars32.
2012-05-15 13:57:43 376
VC助手完美版
2013-07-02
ORACLE学习笔记
2013-03-06
Linux 新手最全10多本培训书籍集-到高
2012-02-19
解决了关闭死锁的CSerialPort类项目
2012-02-06
Java 45款 游戏源代码
2011-12-11
Java学习笔记
2011-11-27
android界面效果全汇总
2011-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人