|
本帖最后由 IceYang 于 2015-7-17 13:21 编辑
1、
BOOL MainFrame::CreateWnd_crash1()
{
HIMAGE hBkgroud = XImage_LoadFile( _T(".\\Menu\\frame1.jpg" ));
// HIMAGE hBkgroud = XImage_LoadFileRect( _T(".\\Menu\\frame1.jpg" ), 0,0,1900,1180 );
if(hBkgroud == NULL) return 0;
// int nwidth = XImage_GetWidth(hBkgroud);
// int nHight = XImage_GetHeight(hBkgroud);
m_Window = XWnd_CreateWindow(0,0,1900 ,1180 , _T("welcome"), NULL, XC_SY_DEFAULT);
if(m_Window == NULL) return 0;
XImage_SetDrawType(hBkgroud, XC_IMAGE_STRETCH);
XWnd_SetImage(m_Window,hBkgroud);
XWnd_ShowWindow(m_Window, TRUE);
return TRUE;
}
如上图, XImage_LoadFile 从JPG文件中读到头数据,获取到JPG图片的信息了,所以下
面调用 XImage_GetWidth , XImage_GetHeight 没有问题。
如果换成注释的那一行代码, XImage_LoadFileRect 后再调用这两个 API 程序就会崩溃,
个人认为这里不应该崩溃,因为 XImage_LoadFileRect 中指定了读取图片数据中的宽和高。
有些数据可以直接从参数中取值,或者此处自建一幅内存位图,重新填充JPG头。不知道
是不是如此,希望XC的同学看看。
2、
BOOL MainFrame::CreateWnd_SetBKGroud()
{
HIMAGE hBkgroud = XImage_LoadFile( _T(".\\Menu\\1首页.jpg" ));
// HIMAGE hBkgroud = XImage_LoadFileRect( _T(".\\Menu\\1首页.jpg" ), 0,0,1900,1180 );
if(hBkgroud == NULL) return 0;
m_Window = XWnd_CreateWindow(0,0,1900 ,1180 , _T("welcome"), NULL, XC_SY_DEFAULT);
if(m_Window == NULL) return 0;
XImage_SetDrawType(hBkgroud, XC_IMAGE_STRETCH);
XWnd_SetImage(m_Window,hBkgroud);
XWnd_ShowWindow(m_Window, TRUE);
return TRUE;
}
这个JPG 是 8000*4500的, 用 XImage_LoadFile 打开设置成背景后可以显示出来
而 XImage_LoadFileRect 打开后显示不出来
不知道是否有问题。
8000*4500的文件太大,发不了,有需要用其它方式发
|
-
|