void Cbitmap::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CBitmap bitmap;
bitmap.LoadBitmapW(IDB_BITMAP1);
BITMAP bmpInfo;
bitmap.GetBitmap(&bmpInfo); CDC comparableDC;
comparableDC.CreateCompatibleDC(&dc);
comparableDC.SelectObject(&bitmap);
CRect rect;
this->GetDlgItem(IDC_STATIC_MAP)->GetClientRect(&rect);
//ScreenToClient(&rect);
dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(), &comparableDC,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);}
为什么得到的可以是窗口中,静态文本的的rect大小,但是坐标就不对了,IDC_STATIC_MAP是一个Group box,我想在这个Group box内显示一幅位图IDB_BITMAP1,但是每次显示都不在Group box内,都在窗口的0,0位置开始显示,大小是对的。
解决方案 »
- Win32开发人员参考库 第4卷 Windows通用控件
- 有关RTTI的问题
- 求<VisualC++技术内幕 fourth edition 中文、英文皆可>和《VC++深入详解》PDF版
- 打印多页问题
- 连接数据库的具体步骤?
- 怎样将一个特定的模板类导出为DLL?谁能解释清楚
- 关于directshow 的问题! 着急啊!
- 谁了解CWnd::OnCommand(WPARAM wParam, LPARAM pParam) (在线等)
- vb调用vc写的动态链接库的问题,搞不清是VB调用有错,还是VC写的时候有问题,请帮忙
- 关于COM端口
- 多个CE的客户端如何连接PC端的server?急 在线等!
- 列表控件
GetDlgItem(IDC_STATIC_MAP)->GetWindowRect(&rect);
ScreenToClient(&rect);
GetDlgItem(IDC_STATIC_MAP)->GetWindowRect(&rect);
ScreenToClient(rect);
屏幕坐标转换成对话框的客户坐标就可以了!