MFC跑图库编程时的问题

CPAOTUKU2Dlg::OnBnClickedReadimage()
{
// TODO: 在此添加控件通知处理程序代码
    HTuple  width,heigth;Index=0;
HTuple  hv_ImageFiles;
    list_files("C:/Users/feng/Desktop/新建文件夹/凹陷",(HTuple("files").Append("follow_links")),&hv_ImageFiles);
    tuple_regexp_select(hv_ImageFiles,(HTuple("\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima)$").Append("ignore_case")),&hv_ImageFiles);
   
if (Index<= (hv_ImageFiles.Num())-1)
{
read_image(&m_Image, HTuple( hv_ImageFiles[Index]));
get_image_size(m_Image, &width, &heigth);
set_part(m_hWindowHandle, 0, 0, heigth - 1, width - 1);
disp_obj(m_Image, m_hWindowHandle);
Index=Index+1;
return;
}

}

     在读取图片按钮的消息映射函数中写程序时,为什么只会显示一张图片。罪魁祸首在Index=0;因为在定义的类成员变量下不可以直接定义Index=0;若编译会出现Index不是静态常量错误。但如果直接将Index=0写在CPAOTUKU2Dlg::OnBnClickedReadimage()下,跑图只能出现第一张,因为每点一下按钮就会执行这个函数,Index=0,永远为0,所以跑的永远是第一张图片。

解决办法:将Index=0;放到窗口初始化程序BOOL CPAOTUKU2Dlg::OnInitDialog()下。


  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值