RT:
向导式属性页在贴背景图的时候为什么四周有一部分没有填充满呢,哪位高手解答一下。见图,如果看不见可以到我空间中看。
12.jpg
向导式属性页在贴背景图的时候为什么四周有一部分没有填充满呢,哪位高手解答一下。见图,如果看不见可以到我空间中看。
12.jpg
解决方案 »
- 怎样把一个整形的数转为CListbox行数的默认值
- 获取windows任务栏句柄出错,帮我看看原因吧
- VC多文档程序运行时,如何自动新建一个最大化文档
- 句中的server、in-place和container是什么意思?整段话又是什么意思?
- 在ActiveX中,可不可以在调自己的接口
- 听朋友说:可别学vc6.0了,现在都用c#了,别学老东西了!这种说法对吗?请教?
- 请问 C++ Primer 3rd Edition和C++ Primer 是同一本书吗?如果不是,他们有什么不同.
- 66分紧急求助.怎么在一个对话框中打开、关闭另外一个对话框啊
- 请各位大哥 帮我写个函数。 谢了!!谢了!!
- 求助 关于线程注入的小问题
- 请问自绘控件 怎么加入滚动条 谢谢
- vs2008 tab 问题
下面3句:
// CImage cImg;
// HRESULT retBk = cImg.Load(_T("Resources\\TurboMode\\1.jpg")); //wuziqi.png是我要加载的图片名称,包含路径
// cImg.Draw(pDC->m_hDC, 0, 0,800 , 470);
我改成bmp,没发现问题。
你不妨也改成bmp。
显示1.jpg,屏幕复制,‘绘图’,存为bmp
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);//DeleteDC needed
CBitmap* pOldBitmap = dcMem.SelectObject(&m_bitmap);
// Retrieve the size of our bitmap...
BITMAP bmp;
m_bitmap.GetObject(sizeof(bmp),&bmp);
// and the size of our window's client area
CRect rect;
GetClientRect(&rect);
pDC->BitBlt(rect.left, rect.top,rect.Width(), rect.Height(),&dcMem,0, 0,SRCCOPY);
//, bmp.bmWidth, bmp.bmHeight
dcMem.SelectObject(pOldBitmap);
dcMem.DeleteDC();
// CImage cImg;
// HRESULT retBk = cImg.Load(_T("Resources\\TurboMode\\1.jpg")); //wuziqi.png是我要加载的图片名称,包含路径
// cImg.Draw(pDC->m_hDC, 0, 0,800 , 470);
return TRUE;
// return CPropertyPage::OnEraseBkgnd(pDC);
}
的矩形大于page吗?
m_bitmap.GetBitmap(&bmp); CBitmap* pOldBitmap = dcMem.SelectObject(&m_bitmap);
pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, SRCCOPY);
dcImage.SelectObject(pOldBitmap);你也可以用这个函数pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);来使画面填充满你的属性页。
void CLineWizardPage::OnSize(UINT nType, int cx, int cy)
{
CPropertyPage::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rc;
GetClientRect(&rc);
rc.InflateRect(20,20);
MoveWindow(&rc);
}
在CWizardSheet的Onpaint()函数里面添加如下代码
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CBrush brush(&bitmap); //
CPen pen(PS_NULL,1,RGB(255,255,0));//这里创建一个空笔,去掉画出来的线边框
CRect rect;
GetClientRect(&rect);
CPaintDC dc(this);//系统默认定义的一个dc,从CDC派生出来的,正好用得上
CBrush * pBrush = dc.SelectObject(&brush);
CPen * pPen = dc.SelectObject(&pen); dc.Rectangle(&rect);//画背景 dc.SelectObject(pBrush);
dc.SelectObject(pPen);
}
这样背景就是全景了,看了一下效果,这里会发现,静态标签文字后有灰色的小背景不好看,
可以添加CWizardSheet的WM_CTLCOLOR消息,再根据 nCtlColor的类型来指定子控件相关属性,
CRect rc;
GetClientRect(&rc);
rc.InflateRect(11,11);// 调整
MoveWindow(&rc);
// 这样sheet本身 是没背景的,只是page有背景。