两个重要函数
BitBlt
CreateCompatibleDC
BitBlt
CreateCompatibleDC
解决方案 »
- 如何在不同CPP中调用MFC控件变量
- GDI+资源如何释放?
- 透明按钮,父窗口有WS_CLIPCHILDREN属性
- 调用DoModal总是失败
- 如何在对话框中调用CView::OnDraw
- 远程视频监控系统\发送端此文件在 vc6.0和。net下均不能通过,是为什么呢?我已经装了DIRECTX 9.0啊,
- 这样到底可能吗?
- 用什么界面库能类似淘宝助理5的界面
- 关于提高线程的优先级别的问题?(高手指点谢谢!!!!!!!!!!!!!!!!!!!!)
- 用自定义的窗口类创建的子窗口为什么具有WS_OVERLAPPED风格?
- *** 900大分等你拿!!如何在IE下面取词!!哪怕是一个小小的提示也加分!! ***
- SetLayeredWindowAttributes 的问题
是不是代码放置位置有误或别的原因,请看看。HDC hdc; //设备环境句柄
HDC hdcmem; //图形环境句柄
HBITMAP hbm; //位图句柄
BITMAP bm; //BITMAP结构//位图操作
hbm=LoadBitmap(hInstance,"flower"); //
GetObject(hbm,sizeof(BITMAP),(LPVOID)&bm); //获取位图尺寸LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
// HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
switch (message)
{
case WM_CREATE: hdc=GetDC(hWnd); //获取设备环境
hdcmem=CreateCompatibleDC(hdc); //获取内存设备环境
ReleaseDC(hWnd,hdc); //获取设备环境
break; case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SelectObject(hdcmem,hbm); //将位图选入内存设备环境
//调用BitBlt将内存设备环境中的位图拷贝到设备环境中
BitBlt(hdc,180,80,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);
// TODO: Add any drawing code here...
// RECT rt;
// GetClientRect(hWnd, &rt);
// DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd, &ps); //释放设备环境句柄
break; case WM_DESTROY:
//释放位图
DeleteObject(hbm);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}