关于LoadFromResource函数的问题

twins222 2010-01-27 11:02:39
我是这样调用这个函数的:

CString pathname;
if(aCFileDialog.DoModal()==IDOK)
{
pathname=aCFileDialog.GetPathName();

if(pathname.GetLength()>0)
{
m_cedit_path.SetWindowText(pathname);
CImage aCImage;
// if(aCImage.Load(pathname)==E_FAIL)
aCImage.LoadFromResource(AfxGetInstanceHandle(),pathname);
if (aCImage.IsNull())
// if(aCImage.LoadFromResource(AfxGetInstanceHandle(),pathname)==E_FAIL)
{
CString strErrMsg;
strErrMsg.LoadString(IDS_KVIMAGEOCX_ERROR_FILEFORMAT);

CString strTitle;
strTitle.LoadString(IDS_KVIMAGEOCX_MESSAGEBOXTITLE);

MessageBox(strErrMsg ,strTitle);
}
}
}


当作为pc机上使用的程序的时候调用load函数来实现,但是现在是要在wince下运行,所以采用vs2005编译的,使用了LoadFromResource函数,不知道调用LoadFromResource时候是否正确,第二个参数是不是不对啊。谢谢回答
LoadFromResource的定义有两种形式:

void LoadFromResource( HINSTANCE hInstance, LPCTSTR pszResourceName ) throw();
void LoadFromResource( HINSTANCE hInstance, UINT nIDResource ) throw();
...全文
674 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
twins222 2010-02-01
  • 打赏
  • 举报
回复
这个问题我已经搞定了,如果谁想知道在wince下读取jpg,gif,bmp等图片的方法,可以联系我,直接站短,或者加我qq:375308292
wolfmvp 2010-01-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 twins222 的回复:]
引用 8 楼 wolfmvp 的回复:
晕,具然没有显示!你把pathname换为对应的图片ID就行了…

我不能用固定的图片放到资源文件中,只能是从其他位置读取bmp,jpg等图片,例如在\HardDisk\project\1.bmp.请问如何能实现在wince下加载图片呢?采用什么函数?
[/Quote]学习ing,期待大犇来搞定,嘿嘿…
twins222 2010-01-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wolfmvp 的回复:]
晕,具然没有显示!你把pathname换为对应的图片ID就行了…
[/Quote]
我不能用固定的图片放到资源文件中,只能是从其他位置读取bmp,jpg等图片,例如在\HardDisk\project\1.bmp.请问如何能实现在wince下加载图片呢?采用什么函数?
twins222 2010-01-27
  • 打赏
  • 举报
回复
自己顶一下 还有人给些建议吗?
twins222 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 91program 的回复:]
应该不是参数的问题,看看参数的内容是否正确吧
[/Quote]
参数的内容应该是正确的,因为用load函数的时候,用的也是这个参数,这个参数应该是保存图片的路径和名称。
91program 2010-01-27
  • 打赏
  • 举报
回复
应该不是参数的问题,看看参数的内容是否正确吧
twins222 2010-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 navi_dx 的回复:]
aCImage.LoadFromResource(AfxGetInstanceHandle(),(LPCTSTR)pathname);

[/Quote]
主要是我现在不加(LPCTSTR)的时候也没有报任何错误啊。
navi_dx 2010-01-27
  • 打赏
  • 举报
回复
aCImage.LoadFromResource(AfxGetInstanceHandle(),(LPCTSTR)pathname);
wolfmvp 2010-01-27
  • 打赏
  • 举报
回复
晕,具然没有显示!你把pathname换为对应的图片ID就行了…
wolfmvp 2010-01-27
  • 打赏
  • 举报
回复
CString     pathname;
if(aCFileDialog.DoModal()==IDOK)
{
pathname=aCFileDialog.GetPathName();

if(pathname.GetLength()>0)
{
m_cedit_path.SetWindowText(pathname);
CImage aCImage;
// if(aCImage.Load(pathname)==E_FAIL)
aCImage.LoadFromResource(AfxGetInstanceHandle(),pathname);
if (aCImage.IsNull())
// if(aCImage.LoadFromResource(AfxGetInstanceHandle(),pathname)==E_FAIL)
{
CString strErrMsg;
strErrMsg.LoadString(IDS_KVIMAGEOCX_ERROR_FILEFORMAT);

CString strTitle;
strTitle.LoadString(IDS_KVIMAGEOCX_MESSAGEBOXTITLE);

MessageBox(strErrMsg ,strTitle);
}
}
}
在代码中标红的部分,你把它替换为所要添加的图片ID(图片须事先添加到工程里),例如IDB_XXX等形式…
rainsly 2010-01-27
  • 打赏
  • 举报
回复
CImage::LoadFromResource
Loads an image from a resource.

注意:是从资源中加载,不是从文件中...

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧