to: zbde00(为了讨老婆喜欢,努力学习中......)
我改了,如下,可效果一样。CClientDC dc(this),会不会是这个this的问题,我在doc-view中,用CDC *pDC=GetDC()和CClientDC pDC(this)都正确,是在view的画图区域对应的;我现在就想找个和控件的表面对应的DC,就像原来我没有派生OnCreate()和OnPaint()时,在OnDraw()中用它的第一个参数pdc画图一样它的调用过程是先OnPaint(),在OnPaint()有一句是调用OnDraw()的。int CBkzsCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap bitmap;
// CDC *pDC=GetDC();
CClientDC pDC(this);
bitmap.CreateCompatibleBitmap(&pDC,800,600);
ReleaseDC(&pDC);
CBitmap *pOldBitmap=(CBitmap *) dc.SelectObject(&bitmap);
dc.PatBlt(0,0,800,600,WHITENESS);
dc.SelectObject(pOldBitmap);
m_hMemDC=dc.Detach();
m_hBitmap=(HBITMAP)bitmap.Detach();
return 0;
}
我改了,如下,可效果一样。CClientDC dc(this),会不会是这个this的问题,我在doc-view中,用CDC *pDC=GetDC()和CClientDC pDC(this)都正确,是在view的画图区域对应的;我现在就想找个和控件的表面对应的DC,就像原来我没有派生OnCreate()和OnPaint()时,在OnDraw()中用它的第一个参数pdc画图一样它的调用过程是先OnPaint(),在OnPaint()有一句是调用OnDraw()的。int CBkzsCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap bitmap;
// CDC *pDC=GetDC();
CClientDC pDC(this);
bitmap.CreateCompatibleBitmap(&pDC,800,600);
ReleaseDC(&pDC);
CBitmap *pOldBitmap=(CBitmap *) dc.SelectObject(&bitmap);
dc.PatBlt(0,0,800,600,WHITENESS);
dc.SelectObject(pOldBitmap);
m_hMemDC=dc.Detach();
m_hBitmap=(HBITMAP)bitmap.Detach();
return 0;
}
解决方案 »
- VC 窗口最小化之后,窗口上的空间还有坐标吗?
- 怎样在以控制台窗口为窗口的应用程序里响应刷新请求???
- 在写程序时,遇到的连接错误,问问vc达人哈
- 求助:关于在mfc的共享dll中使用msflexgrid的问题??
- BitBlt()竟然不起作用?搞掂结贴!!!!!!!!!!!!!!!!
- 如何在一个简单的win32 application里面显示一张图片?
- 关于CDataBase与CRecordSet的问题,在线等待……
- 用会么命令修改.cab文件中的内容?
- 我现在学<Windows网络编程> 看完了命名管道和油槽, 接下来看Winstock有点糊涂,请问这时候是否要看那三卷的<TCP/IP>才能看的懂<Windows网络编程> 请各位高手谈谈学习网络编程的曲线
- 各位高手请进!高分等你
- 如何修改机器ip,dns,子网掩码而不重新启动计
- 熟悉线程的兄弟谁知道,线程可不可以写在一个类里,像一个类的成员函数一样,如果可以怎么写?
[email protected]
CRect rectClient;
GetCurrentClient(rectClient);