在对话框中加载位图? 情况是:m_bmp是CBitmap的对象 ,m_picture是对话框上的图形控件对应的变量,该BMP图存放在D:\hanjie\picture1上:代码是这样的:在OnInitDlg()中:m_bmp.LoadBitmap("D:\hanjie\picture1");m_picture.SetBitmap(m_bmp); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CAboutDlg::OnInitDialog() { CDialog::OnInitDialog(); HBITMAP m_hBmp = (HBITMAP)::LoadImage(0, "D:\\\\bitmap.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); _ASSERT(m_hBmp!=NULL); m_pBmp = CBitmap::FromHandle(m_hBmp); return TRUE;}void CAboutDlg::OnPaint() { CPaintDC dc(this); BITMAP bm; CDC dcMem; VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm)); dcMem.CreateCompatibleDC(&dc); CBitmap *pOldBMP=(CBitmap *)dcMem.SelectObject(m_pBmp); BitBlt(dc.m_hDC,0, 0, bm.bmWidth, bm.bmHeight, dcMem.m_hDC, 0, 0, SRCCOPY); dcMem.SelectObject(pOldBMP); // Do not call CDialog::OnPaint() for painting messages} 运行时该函数返回空值:HBITMAP m_hBmp = (HBITMAP)::LoadImage(0, "D:\\\\bitmap.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);不知是什么原因? 皮皮0714:您讲的是从资源中获得位图,我的意图是从硬盘上读取位图,因为我的位图是放在数据库中的一个字段上,该字段的内容是存放该位图的地址。 m_hBmpNew = (HBITMAP) LoadImage( AfxGetInstanceHandle(), // handle to instance file, // name or identifier of the image (root is where project is) IMAGE_BITMAP, // image types 0, // desired width 0, // desired height LR_LOADFROMFILE); 在VCKBASE网站有例子源代码可以下载 CBitmap不能直接从文件中加装位图,只能从资源中加装..得用::LoadImage把位图装载进内存后装得到的位图句柄Attach到CBitmap对象上 win7 vs2010 ie8 如何调试bho啊?有没有朋友知道的? VC树状控件操作与数据库相关联 抓包数据格式化写入文件的源码,源字符写入的时候有点问题,解决优化给全分,其他没分 已知文件的指针位置,如何计算该位置到文件结束的地方的字节数? 能否用全局钩子WH_CALLWNDPROC过滤到wm_close消息时拦截并终止消息继续发送?? 窗口分割后的打印问题( :(没分啦 ) 对话框内容的实现问题??? 如何截获ALT+F4组合键? 快来帮我! 关于Rectangle()中的参数个数 一个初级问题,窗口怎么关闭! 怎样区分控件处于编辑状态还是运行状态?
{
CDialog::OnInitDialog();
HBITMAP m_hBmp = (HBITMAP)::LoadImage(0,
"D:\\\\bitmap.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
_ASSERT(m_hBmp!=NULL);
m_pBmp = CBitmap::FromHandle(m_hBmp);
return TRUE;
}void CAboutDlg::OnPaint()
{
CPaintDC dc(this);
BITMAP bm;
CDC dcMem;
VERIFY(m_pBmp->GetObject(sizeof(bm),(LPVOID)&bm));
dcMem.CreateCompatibleDC(&dc);
CBitmap *pOldBMP=(CBitmap *)dcMem.SelectObject(m_pBmp);
BitBlt(dc.m_hDC,0, 0, bm.bmWidth, bm.bmHeight, dcMem.m_hDC, 0, 0, SRCCOPY);
dcMem.SelectObject(pOldBMP);
// Do not call CDialog::OnPaint() for painting messages
}
HBITMAP m_hBmp = (HBITMAP)::LoadImage(0,
"D:\\\\bitmap.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
不知是什么原因?
皮皮0714:您讲的是从资源中获得位图,我的意图是从硬盘上读取位图,因为我的位图是放在数据库中的一个字段上,该字段的内容是存放该位图的地址。
AfxGetInstanceHandle(), // handle to instance
file, // name or identifier of the image (root is where project is)
IMAGE_BITMAP, // image types
0, // desired width
0, // desired height
LR_LOADFROMFILE);