问个在 SDK 窗口中显示位图和擦除的方法。
比如我创建了个空窗口怎么在特定位置显示一张图片。请把各个函数的功说清楚,我在网上查了半天都没查到。谢谢了! ...
比如我创建了个空窗口怎么在特定位置显示一张图片。请把各个函数的功说清楚 ,我在网上查了半天都没查到。谢谢了!
展开
1个回答
展开全部
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上,那些值分别是x y width height
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上,那些值分别是x y width height
DeleteObject(hbitmap);//删除
DeleteDC(hmemdc);//记得删除对象
EndPaint (hwnd, &ps) ;
return 0 ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询