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;
}
{
// 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()下。