博文

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......

阅读全文(3522) | 评论:0

对话框条的制作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: ......

阅读全文(9976) | 评论:3

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......

阅读全文(6973) | 评论:1

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......

阅读全文(10391) | 评论:0

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......

阅读全文(2960) | 评论:0

经典之句(3)----不看你会遗憾的(2007-01-01 00:00:00)

摘要:1.我失败的比别人多,但是站起来更快,而且还不往后看,站起来就往前走.因为再往前走就不会掉进这个洞了,前面已经掉下了.                                     -----从小混混演到黑帮老大的曾志伟的忠告 2.人是多面体,我们要学会从立体的角度看人,不能只看一面.                                                                                 ------不知道谁说的 3.很多演员特别讨厌拍戏时候的NG,因为导演要求停下来重拍,而我却特别享受那个NG,因为现实人生不可能重来,但是拍戏NG等于让一小段人生重来.                    &......

阅读全文(2824) | 评论:0

喝酒(2006-12-31 23:37:00)

摘要:今天是今年最后一天了,晚饭也是最后一次了,于是室友约了出去撮一顿(实际上是一吨).喝酒是少不了的,平时很少喝酒的我今天也得豁出去了,不能让室友扫兴.喝着喝着,一瓶白酒就光了(我从不喝白的),白酒真是难喝,也不知道啥做的,还有那么多人花高价买好酒,实在不明白,莫非就图一个一醉方休? 我喝酒也从没醉过.我害怕喝醉了.感觉喝醉是很可怕的事.一是喝了以后失态,二是担心伤身体.就算高考收到录取通知书清客吃饭的时候也没有喝醉.好像潜意识中很害怕这件事. 这次也不例外.喝了白的以后,以为这样就完了,哪知道一位兄弟没尽兴,又来啤酒,喝白再喝啤,要命啊!没办法了,忍着头皮喝了,一会就干了3瓶,也不知道是怎么就完了.反正肚子是胀得要死.难怪好多人有啤酒肚的雅号. 不过只要大家高兴就好.最后一天放纵一下也好,再说会喝酒也是好事.室友是这么说的.什么你以后做项目经理了,很多饭局要应付,不喝酒怎么行呢?它们就是这样劝酒的.不知道是好还是不好.......

阅读全文(2393) | 评论:0

元旦到了,祝福所有的人(2006-12-31 12:53:00)

摘要:元旦到了,3天假期,好开心啊!其实原因还不在这里,离寒假前1个月考试不多,也不用担心,可以舒服的等待寒假的来临了,好爽啊! 好久没看电视了.最近看pplive时,更新了一遍,传输的速度比以前快了好多,也不卡了,就像看电视机似的,还更新了很多节目,这个也想看,那个也想看,这种感觉有点像回到了家里看电视机似的.不知道pplive是谁做的啊,现在技术又提高了很多啊,值得表扬,尤其是在我们这个校园网比蜗牛还慢的地方.元旦有电视看了! 再想想那些考研的,他们元旦估计过的不爽,很可能还要在自习室度过.偏偏把考研放在元旦和春节附近,好像不太合理啊!明年我也要去受罪了,哎! 今朝有酒今朝醉了.先把这个元旦玩好再说.祝福所有的人!  ......

阅读全文(2349) | 评论:0

开源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的重要基石,无论何种行业应用,离开了数据都是无源之水,无本之木。空间数据不同于其他信息系统中的业务数据,能够在系统运行过程中自......

阅读全文(5252) | 评论:1

软件工程--项目管理的思维转换(喜欢技术的看看)(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技术的可行性如何;到哪里寻找项目顾问和技术供应商.第二,用户追求系统的效益,管理的完善或者是服务质量的提高,而不仅仅是技术创新;技术应该依从个人,服务于组织管理.第三,组织内部信息部门的员工角色有了变化,组织需要的信息系统而不是信息技术,需要的是信息专家而不是计算机专家(或者软件工程......

阅读全文(3568) | 评论:0