毕设的问题与解决(四)

来源:互联网 发布:lofter 域名 查ip 编辑:程序博客网 时间:2024/06/01 08:11

 大体框架做出了后松了一阵子,从昨晚到现在又沉下心来做了点。。

对框架的一些细节处理:

1.用CxImage重复加载图片时候,出现终止错误。开始以为是CxImage不能重复load,以为需要先注销,后来一步步排查原因,原来是后面Imagelist.add()前面要create,而我把这个写在了加载图片会调用到的方法里,导致同一类成员Imagelist重复creae,后来把create改写在窗体初始化里了。这样会有个问题,需要再次查找时候,需要把旧的Imagelist清空啊,查了半天,只找到一个m_ListImage.DeleteImageList();方法,运行后也报错,后来我改成

 /* 添加前的初始化  对旧的Imagelist清空 */
 if (p->m_ListImage.GetImageCount()!=0)
 {
  //添加前先清空  
  p->m_ListImage.DeleteImageList();
  isImgListCreate = p->m_ListImage.Create(100, 60, ILC_COLOR32 | ILC_MASK, 0,1);
  ASSERT(isImgListCreate == TRUE);
 }

就是说,DeleteImageList()后还要在create才能用。

2.运行后发现:界面的pictureControl失去焦点后不显示图片,

解决方案:参考http://hi.baidu.com/zhao0p/blog/item/a3078d7e4a21e13e0cd7dad8.html,即需要重写OnPaint()函数

3.测试:不载入原始图片,直接设置目录进行查询:

修改方案:while判断,内提示错误,并弹出载入原始图片框(大大感慨while真是个好东东~~)

4.还有个小提醒:我在将查询到的图片添加到list列表时候,同时也储存了图片信息,并想在list列出后相应单击事件:在界面下方显示 相应图片信息,因为使用数组保存,所以会用到Listbox的GetCurSel()//获取列表的序号,作为数组序号,出现错误是:信息不匹配了。原因:listbox的sort属性不能设为true,只有这样,才是原始的保存序列。

(不过我用的VS2008,没找到Listbox的点击事件,最后用的双击事件— —还有待解决。。)

明天准备改进匹配算法了。。

原创粉丝点击