vc插入bmp图片的问题...
caseWM_PAINT:hdcClient=BeginPaint(hwnd,&ps);hdcWindow=LoadImage(NULL,szFilename,IMAGE...
case WM_PAINT:
hdcClient = BeginPaint (hwnd, &ps) ;
hdcWindow = LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
StretchBlt (hdcClient, 0, 0, 500, 500, hdcWindow, 0, 0, 400, 400, SRCCOPY) ;
ReleaseDC (hwnd, hdcWindow) ;
EndPaint (hwnd, &ps) ;
return 0 ;
大侠赐教啊...为啥木有显示图片啊啊 ... 展开
hdcClient = BeginPaint (hwnd, &ps) ;
hdcWindow = LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
StretchBlt (hdcClient, 0, 0, 500, 500, hdcWindow, 0, 0, 400, 400, SRCCOPY) ;
ReleaseDC (hwnd, hdcWindow) ;
EndPaint (hwnd, &ps) ;
return 0 ;
大侠赐教啊...为啥木有显示图片啊啊 ... 展开
4个回答
展开全部
HDC hdcClient,hmemdc;
HBITMAP hbitmap;
case WM_PAINT:
hdcClient = BeginPaint (hwnd, &ps) ;
hmemdc=CreateCompatibleDC(hdcClient);//创建与hdcClient兼容的内存DC
//只有内存DC可以选入位图
//初始内存DC只有1像素大小,选入位图后才拓展其显示平面
//选入的位图只能是单色位图或者颜色尺寸与hmemdc相同的位图,如都是24位或者都是32位等
hbitmap= (HBITMAP)LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
SelectObject(hmemdc,hbitmap);//将位图选入内存DC
StretchBlt (hdcClient, 0, 0, 500, 500, hmemdc, 0, 0, 400, 400, SRCCOPY) ;//将内存DC的位图复制到hdcClient上
DeleteObject(hbitmap);//删除
DeleteDC(hmemdc);//记得删除对象
EndPaint (hwnd, &ps) ;
return 0 ;
以上凭记忆书写,若有语法错误,自行修改。
HBITMAP hbitmap;
case WM_PAINT:
hdcClient = BeginPaint (hwnd, &ps) ;
hmemdc=CreateCompatibleDC(hdcClient);//创建与hdcClient兼容的内存DC
//只有内存DC可以选入位图
//初始内存DC只有1像素大小,选入位图后才拓展其显示平面
//选入的位图只能是单色位图或者颜色尺寸与hmemdc相同的位图,如都是24位或者都是32位等
hbitmap= (HBITMAP)LoadImage(NULL, szFilename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
SelectObject(hmemdc,hbitmap);//将位图选入内存DC
StretchBlt (hdcClient, 0, 0, 500, 500, hmemdc, 0, 0, 400, 400, SRCCOPY) ;//将内存DC的位图复制到hdcClient上
DeleteObject(hbitmap);//删除
DeleteDC(hmemdc);//记得删除对象
EndPaint (hwnd, &ps) ;
return 0 ;
以上凭记忆书写,若有语法错误,自行修改。
展开全部
hMainDC = BeginPaint(hWnd, &MainPaint);
dcMem = CreateCompatibleDC(hMainDC);
pOldBitmap = (HBITMAP)SelectObject(dcMem, hBKGND);
nError = StretchBlt (hMainDC, 0, 0,
g_uiWndWidth, g_uiWndHeight,
dcMem, 0, 0,
g_uiWndWidth, g_uiWndHeight,
picKey);
SelectObject(dcMem, pOldBitmap);
DeleteObject(hBKGND);
DeleteDC(dcMem);
EndPaint(hWnd, &MainPaint);
你按这个代码改一下,很久以前写的。
还有,用LoadBitmap加载位图,而且别写在WM_PAINT消息内。
dcMem = CreateCompatibleDC(hMainDC);
pOldBitmap = (HBITMAP)SelectObject(dcMem, hBKGND);
nError = StretchBlt (hMainDC, 0, 0,
g_uiWndWidth, g_uiWndHeight,
dcMem, 0, 0,
g_uiWndWidth, g_uiWndHeight,
picKey);
SelectObject(dcMem, pOldBitmap);
DeleteObject(hBKGND);
DeleteDC(dcMem);
EndPaint(hWnd, &MainPaint);
你按这个代码改一下,很久以前写的。
还有,用LoadBitmap加载位图,而且别写在WM_PAINT消息内。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
hdcWindow应该是窗口DC句柄
LoadImage返回的是位图资源句柄。
LoadImage返回的是位图资源句柄。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-15
展开全部
{
typedef int (WINAPI ICEPUB_DISPIMG)(HWND hWnd,char *strImgFilename,int x,int y);
ICEPUB_DISPIMG *icePub_dispImg = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_dispImg = (ICEPUB_DISPIMG *)GetProcAddress(hDLLDrv, "icePub_dispImg");
}
if(icePub_dispImg != NULL)
icePub_dispImg(m_hWnd,"b.png",10,10);
// icePub_dispImg(m_ctrlText.m_hWnd,"b.jpg",0,0);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
typedef int (WINAPI ICEPUB_DISPIMG)(HWND hWnd,char *strImgFilename,int x,int y);
ICEPUB_DISPIMG *icePub_dispImg = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_dispImg = (ICEPUB_DISPIMG *)GetProcAddress(hDLLDrv, "icePub_dispImg");
}
if(icePub_dispImg != NULL)
icePub_dispImg(m_hWnd,"b.png",10,10);
// icePub_dispImg(m_ctrlText.m_hWnd,"b.jpg",0,0);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
参考资料: icePubDll百度之
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询