一个不懂的问题,一定要给予帮忙啊

yingkou 2003-10-20 09:21:28
在对话框上动态的添加了一个CStatic,然后在上面画了一幅图片,然后在OnInitizlize中调用,这时显示了一次,然后消失,我想应该在OnPaint中调用,但是还是没有显示,为什么?
源码如下:
m_static.Create("",WS_CHILD|WS_VISIBLE|WS_EX_STATICEDGE|WS_EX_TRANSPARENT|
WS_EX_CLIENTEDGE,CRect(140,10,300,300),this,IDC_MYSTATIC))
显示位图:
hwnd=GetDlgItem(IDC_MYSTATIC);
hwnd->GetClientRect(&rect);
hDesDC = hwnd->GetDC()->m_hDC;
hSrcDC = CreateCompatibleDC(hDesDC);
hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),
"D:\\car.bmp",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
GetObject(hBitmap, sizeof(BITMAP), &bm);
SelectObject(hSrcDC, hBitmap);
hwnd->GetClientRect(&rect);
::SetStretchBltMode(hDesDC,COLORONCOLOR);
::StretchBlt(hDesDC, rect.left, rect.top, rect.right,rect.bottom,
hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);

hwnd->GetClientRect(&rect);
::SetStretchBltMode(hDesDC,COLORONCOLOR);
::StretchBlt(hDesDC, rect.left, rect.top, rect.right,rect.bottom,
hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);
...全文
19 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxfBrave 2003-10-21
  • 打赏
  • 举报
回复
直接用Picture控件好了

上面的代码应该写在OnPaint中
wuxfBrave 2003-10-21
  • 打赏
  • 举报
回复
直接用PictureBox好了
artherx2002 2003-10-21
  • 打赏
  • 举报
回复
1.可能使风格设置有问题,去掉WS_EX_TRANSPARENT
2.建议用Picture控件
3.代码写在控件的父窗口的OnUpdate()中试一下
dan1416 2003-10-20
  • 打赏
  • 举报
回复
你那些代码加在onpaint()里
干吗写两遍
hwnd->GetClientRect(&rect);
::SetStretchBltMode(hDesDC,COLORONCOLOR);
::StretchBlt(hDesDC, rect.left, rect.top, rect.right,rect.bottom,
hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,SRCCOPY);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧