本人在编一个有关显示GIF图片的软件,希望能对已经调入Resources的GIF图片进行随机选择,以下是我利用的函数if (m_lfigure.Load(MAKEINTRESOURCE(IDR_GIF_XXX)/*IDR_FELIX*/,_T("GIF")))
{
BOOL bIsAnimateGIF = m_lfigure.IsAnimatedGIF(); 
int iFrameCout = m_lfigure.GetFrameCount();
m_lfigure.Draw();
}
其中m_lfigure是利用的PictureEx类的成员程序中IDR_GIF_XXX希望能换成类似于字符串之类的元素,这样可以利用字符串数组+随机数实现随机图片的读取,但是无论我将这个东西换成什么格式的(LPCSTR,string),都不能进行正确的读取,希望大家能帮助我,谢谢!

解决方案 »

  1.   

    资源编号怎么能随便动啊?
    你要么自己做个编号就可以了。
    switch(rand()%总数)
    {
      CASE 1:
             调用m_lfigure.Load(MAKEINTRESOURCE(IDR_GIF_XXX)
    }
      

  2.   

    将所有的图片都是用GDI+读到资源数组里,然后随机数组下标就行了,注意别越界。但是这样很消耗内存吧,不知道加资源是什么原理
      

  3.   

    资源ID应该是一个数字常量,你可以先将这些ID按数字顺序设好,然后写成:if (m_lfigure.Load(MAKEINTRESOURCE(IDR_GIF_XXX+i)的形式,其中IDR_GIF_XXX是ID最小的那一个,i是一个int型数字。
      

  4.   

    资源ID是不变的 你可以做一个可变的索引和资源ID对应