博文
CListCtrl学习笔记(3)---中级篇(2)(2007-01-03 17:44:00)
摘要:
专题2:CListCtrl中如何实现排序功能?
1.排序功能的实现需要用到下面这个函数:
BOOL SortItems( PFNLVCOMPARE pfnCompare, DWORD dwData );
其中 第一个参数是回调函数的指针,后面是所要传递的参数
而回调函数一般定义如下:
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort);
其中lParam1是其中list的一项数据,而lparam2是另外一项,第三个参数是刚才传递过来的参数.
2.举例如下:
(1)回调函数的编写
注意回调函数必须是全局或者静态的,并且不能调用成员变量,所以要凭借最后一个参数传递某些数据.
int CALLBACK CompareFunc(LPARAM lParam1,LPARAM lParam2,LPARAM lParamSort)
{
//传递list指针
Cmylist *list=(Cmylist*)lParamSort;
//获得指定行的索引号
LVFINDINFO findInfo;
findInfo.flags = LVFI_PARAM;
findInfo.lParam = lParam1;
int iItem1 = list->FindItem(&findInfo, -1);
findInfo.lParam = lParam2;
int iItem2 = list->FindItem(&findInfo, -1);
//根据指定列的索引号,得到所在项的数据
CString strItem1 =list->GetItemText(iItem1,list->selectedField);
CString strItem2 =list->GetItemText(iItem2,list->selectedField);
//判断是升序还是降序
if(!li......
对话框条的制作CDialogBar(2007-01-03 16:58:00)
摘要:简单来说,就是对话框条的制作
1.创建对话框资源:在对话框资源编辑器内生成一个Dialog资源,并将其风格(Style)属性必须设置为Child,不能设置为Overlapped或Popup,否则运行肯定出错;至于边界属性则随用户自己喜欢,一般都是选择None。其余属性也随用户选择,一般没有特殊要求还是选择默认的好。
2.自己派生一个继承于CDialogBar的类,注意此时由于ClassWizard没有把CDialogBar列出来,所以只好自己手动编写.h和.cpp,然后加上必要的处理函数,如:
class CmyDlgWnd : public CDialogBar
{
public:
CmyDlgWnd(CWnd *pParent=NULL);
virtual ~CmyDlgWnd();
//{{AFX_VIRTUAL(CmyDlgWnd)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(myDlgWnd)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
3.假设在对话框添加了一个按钮,现在要响应,可以手动编写处理函数:
.h:
afx_msg void OnClose();
.cpp:
BEGIN_MESSAGE_MAP(CmyDlgWnd, CDialogBar)
//{{AFX_MSG_MAP(CmyDlgWnd)
// NOTE: ......
VC中的箭头画法(2007-01-03 01:01:00)
摘要:
在一些路径图中常常需要作出箭头,而MFC中并没有提供这样的函数,只好自己编写.
如图所示,有一直线p1p2,现在要在p2端画出一个箭头,p2p3就是箭头的一遍,做好辅助线,其中p2p3长度与p1p2相等.len是需要的箭头长度,theta是箭头的倾斜角度,图中的17度.
void CMyView::LineArrow(CPoint p1, CPoint p2,CDC *pDC)
{
double x0,y0,x1,y1,x2,y2;
//(x0,y0)是p2p1的向量表示
x0=p1.x-p2.x;
y0=p1.y-p2.y;
//根据角度求出图中的p2p3向量和另一边的向量
x1=x0*cos(theta)-y0*sin(theta);
y1=x0*sin(theta)+y0*cos(theta);
x2=x0*cos(theta)+y0*sin(theta);
y2=x0*sin(-theta)+y0*cos(theta);
double l1,l2;
l1=sqrt(x1*x1+y1*y1);
l2=sqrt(x2*x2+y2*y2);
&nb......
VC中导入图像(BMP,JPG,GIF)并显示的方法(2007-01-16 13:24:00)
摘要:下面要实现的程序是:从磁盘上读取一个jpg,bmp,或者gif图像,然后在程序中用鼠标画出一个矩形,表示图像的显示范围
//打开文件对话框,记下路径名
void CMyView::OnFile()
{
// TODO: Add your command handler code here
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter="All Files(*.*)\0*.*\0textfiles(*.txt)\0*.txt\0\0";
if(dlg.DoModal()==IDOK)
{
bmpname=dlg.GetPathName();
Isput=TRUE;
}
}
//左键单击处理
void CMyView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
if(Isput==TRUE){
if(pushnumb==0)
{
oldpoint=point;
oripoint=point;
pushnumb=1;
SetCapture();
}
else
{
ReleaseCaptur......
GIS好东东(2007-01-02 01:05:00)
摘要:
转载:
ArcGIS资料大全
[日期:2005-7-25]
来源:www.gisforum.net 作者:未知
[字体:大 中 小]
[被屏蔽广告]
兄弟们,好东西,大家看一看!
1. ESRI公司的ARCGIS8中文教程下载
http://bbs.gissky.net/ShowPost.asp?id=1176
2. 快速制图基本操作-ArcGIS应用案例
http://www.gissky.net/netresdetail.asp?ID=201
3. 数据的后期处理-ArcGIS应用案例
http://www.gissky.net/netresdetail.asp?ID=200
4. ArcGIS World第一、二、四期
http://share.gissky.net/esri/ArcGISWorld/
5. ArcGIS中国通讯第14、15、16期
http://share.gissky.net/esri/ArcGIS中国通讯 /
6. Modeling our World中文版
http://share.gissky.net/esri/Modeling%20our%20World中文版/
7. 第六届ArcGIS暨ERDAS中国用户大会相关资料
http://share.gissky.net/esri/ArcGIS中国用户大会资料/
8. ArcGIS8.3的安装的傻瓜式指南(图解)
http://bbs.gissky.net/ShowPost.asp?id=204
9. arcgis 9 中文环境
http://bbs.gissky.net/ShowPost.asp?id=5092
10. ArcInfo workstation命令行列表
http://www.gissky.net/netresdetail.asp?ID=188
11. ArcGIS Desktop和ArcPad的集成应用
http://www.gissky.net/netresdetail.asp?ID=215
12. Sha......
经典之句(3)----不看你会遗憾的(2007-01-01 00:00:00)
摘要:1.我失败的比别人多,但是站起来更快,而且还不往后看,站起来就往前走.因为再往前走就不会掉进这个洞了,前面已经掉下了.
-----从小混混演到黑帮老大的曾志伟的忠告
2.人是多面体,我们要学会从立体的角度看人,不能只看一面.
------不知道谁说的
3.很多演员特别讨厌拍戏时候的NG,因为导演要求停下来重拍,而我却特别享受那个NG,因为现实人生不可能重来,但是拍戏NG等于让一小段人生重来.
&......
喝酒(2006-12-31 23:37:00)
摘要:今天是今年最后一天了,晚饭也是最后一次了,于是室友约了出去撮一顿(实际上是一吨).喝酒是少不了的,平时很少喝酒的我今天也得豁出去了,不能让室友扫兴.喝着喝着,一瓶白酒就光了(我从不喝白的),白酒真是难喝,也不知道啥做的,还有那么多人花高价买好酒,实在不明白,莫非就图一个一醉方休?
我喝酒也从没醉过.我害怕喝醉了.感觉喝醉是很可怕的事.一是喝了以后失态,二是担心伤身体.就算高考收到录取通知书清客吃饭的时候也没有喝醉.好像潜意识中很害怕这件事.
这次也不例外.喝了白的以后,以为这样就完了,哪知道一位兄弟没尽兴,又来啤酒,喝白再喝啤,要命啊!没办法了,忍着头皮喝了,一会就干了3瓶,也不知道是怎么就完了.反正肚子是胀得要死.难怪好多人有啤酒肚的雅号.
不过只要大家高兴就好.最后一天放纵一下也好,再说会喝酒也是好事.室友是这么说的.什么你以后做项目经理了,很多饭局要应付,不喝酒怎么行呢?它们就是这样劝酒的.不知道是好还是不好.......
元旦到了,祝福所有的人(2006-12-31 12:53:00)
摘要:元旦到了,3天假期,好开心啊!其实原因还不在这里,离寒假前1个月考试不多,也不用担心,可以舒服的等待寒假的来临了,好爽啊!
好久没看电视了.最近看pplive时,更新了一遍,传输的速度比以前快了好多,也不卡了,就像看电视机似的,还更新了很多节目,这个也想看,那个也想看,这种感觉有点像回到了家里看电视机似的.不知道pplive是谁做的啊,现在技术又提高了很多啊,值得表扬,尤其是在我们这个校园网比蜗牛还慢的地方.元旦有电视看了!
再想想那些考研的,他们元旦估计过的不爽,很可能还要在自习室度过.偏偏把考研放在元旦和春节附近,好像不太合理啊!明年我也要去受罪了,哎!
今朝有酒今朝醉了.先把这个元旦玩好再说.祝福所有的人!
......
开源GIS(2006-12-29 22:23:00)
摘要:转载:
开源GIS系统
作者: 来源:zz 发表时间:2006-06-22 浏览次数:
5237 字号:大 中 小
平台的对峙
开发者都希望自己的软件能够运行在尽可能多的计算机上。然而事与愿违,摆在 GIS开发者面前的仍然是对峙的平台。J2EE随着Java5。0的发布,已经正式更名为JavaEE,而微软也正式发布了。NET2。0以及集成开发环境利器Visual Studio 2005。到底是。NET还是Java? 面对旗鼓相当的Java和。NET阵营,其实GIS平台开发商的答案早已揭晓,那就是都要!由于。NET和Java比较起来并无明显的优劣之分,只是随应用的需要和习惯的差别而略有不同,因此提供Java和。NET的双份开发接口来满足不同的需求也就不难理解了。可实际中,若要同时支持Java和。NET 谈何容易!要知道GIS的出现是上个世纪60年代的事,在当代众多IT缩写词出现之前,GIS就已经在城市规划、土地管理、军事等行业得到了应用。几十年的积累,很多代码已经成为了固化的资产。GIS平台开发商经历过二次开发语言的繁荣和凋敝,组件时代的兴起和衰落,而今又要面对平台对峙的挑战。也经历许我们应该考虑一些更好的、更彻底的解决办法,能够让我们在这个多变的时代找到相对稳定的支点。事实上,这个问题已经有了比较好的答案,办法其实也很简单,那就是重回C/C++的荣耀之都,实现GIS内核和外壳分离,以适应不断变化的外部世界。其实这个办法也不是GIS一家的专利,使用C/C++编写程序,实现一次编写,到处编译。这也是很多软件采取的跨平台策略。相比之下,无论是在Java组件和COM之间架桥还是在Linux和Windows之间修路,总显得有些不够优雅。不出意外,平台的对峙在未来的几年还会持续下去,在这对峙的平台下开发,也许最能彰显我们开发者智慧。
全球的数据
数据是GIS的重要基石,无论何种行业应用,离开了数据都是无源之水,无本之木。空间数据不同于其他信息系统中的业务数据,能够在系统运行过程中自......
软件工程--项目管理的思维转换(喜欢技术的看看)(2006-12-28 16:56:00)
摘要:今天算是在图书馆看到了一本好书.我是比较重视计算机技术和专业相结合的人,尤其是编程方面.今天看了这本书,感觉又有点收获了.拿出来和大家一起共勉
转载: <<GIS分析.设计与项目管理>> 孔云峰著.
20世纪90年代中后期以来,GIS应用的一个最重要趋势是:从技术推动向需求牵引转变.由于地理空间信息的独特性和地理信息技术的复杂性,GIS自出现以来,解决技术问题往往是最困难的,需要优先考虑的,技术一直是研究,开发,教育和培训的核心.这使不少人形成了技术中心主义倾向,认为最新的技术即是最有用的,最好的.对于他们而言,新技术的优势是显然的,不容怀疑的,先进创新,进步优势,大都是同义词;解决问题的重点在于解决技术问题;新技术一定能够获得认可,值得投资.因此,他们往往责备用户"愚昧,无知",不懂得利用高新技术;对GIS技术持保留态度的人,也被认为是保守的,倒退的,令人生厌的.
随着GIS的大量应用,学者意识到了技术中心主义的局限性.它忽略了几个基本事实:GIS技术对于最终用户仍然很复杂,仍然不够成熟;人,组织与技术之间存在复杂的互动关系,不能仅从技术出发忽略人在GIS应用中所起的作用.以前参与GIS项目的多是领域内的专家,而现在的用户多是普通人员,不太关心复杂的技术问题.自然的,GIS应用转向了需求牵引阶段.推动这一转变的过程还有其他原因: 1.GIS技术发展迅速,到20世纪90年代中后期,GIS产品已经基本成熟.2. 技术已经不再是困扰GIS应用的头号障碍; 3. 研究表明,忽视个人与组织因素,是造成GIS项目失败的主要因素.
与技术中心主义相比,需求牵引的GIS项目有一些新的特征.首先,它注重以下问题:组织是否需要引进GIS技术;GIS有哪些作用;引进GIS技术的可行性如何;到哪里寻找项目顾问和技术供应商.第二,用户追求系统的效益,管理的完善或者是服务质量的提高,而不仅仅是技术创新;技术应该依从个人,服务于组织管理.第三,组织内部信息部门的员工角色有了变化,组织需要的信息系统而不是信息技术,需要的是信息专家而不是计算机专家(或者软件工程......