
你是想设置背景色吧
直接使用picture控件添加bmp图片,不容易实现你描述的功能。
可以通过以下方法解决:
1.添加一个picture控件ID假定为IDC_S_PIC,调整的你需要的大小,类型原则Frame。
2.在OnPaint函数中添加以下代码在IDC_S_PIC制定的范围内添加背景图片。
void CBDlg::OnPaint(){
CPaintDC dc(this) // device context for painting
CRect rect
GetDlgItem(IDC_S_PIC)->GetClientRect(&rect)
CDC dcMem
dcMem.CreateCompatibleDC(&dc)
CBitmap bmpBackground
if(bmpBackground.LoadBitmap(IDB_BITMAP1))
{ //保证加载图片成功后再执行以下 *** 作
BITMAP bitmap
bmpBackground.GetBitmap(&bitmap)
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground)
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY)
}
}
1.事先准备好位图。一定要位图。位图。2.在对话框中添加picture控件,设置type为bitmap,将其ID改为IDC_STATIC1(不改不行)。然后为picture添加控制变量PT1。
3.在.cpp中找到onpaint()函数加入如下代码。
CDC dcMemory1
CBitmap wtj_bitmap1
BITMAP bmInfo1
CDC *pDC=PT1.GetDC()
PT2.SetWindowPos(0,-400,112,53,20, SWP_NOZORDER | SWP_NOACTIVATE)
GetDlgItem(IDC_STATIC1)->GetWindowRect(rect)//创建一个CRect对象rect,矩形结构类,此对象用来指定要拉伸变为的大小
wtj_bitmap1.LoadBitmap(IDB_BITMAP15)
wtj_bitmap1.GetObject(sizeof(bmInfo1),&bmInfo1)
dcMemory1.CreateCompatibleDC(pDC)
dcMemory1.SelectObject(&wtj_bitmap1)
//pDC->SetStretchBltMode(COLORONCOLOR)
pDC->SetStretchBltMode(HALFTONE)
pDC->StretchBlt(0,0,1000,rect.Height()-13,&dcMemory1,0,0,bmInfo1.bmWidth,bmInfo1.bmHeight, SRCCOPY)//利用StretchBlt()贴图实现自动拉伸
ReleaseDC(pDC)
4.setwindowspos函数和stretchblt函数参数百度就可以查到了。
MFC中的Picture Control控件可以用来显示静态图片,如果要显示滑动条(Slider Control),需要将滑动条控件作为Picture Control控件的子控件添加进去。具体步骤如下:1. 在资源编辑器中添加一个Picture Control控件,并设置好其ID和位置大小。
2. 在代码中使用CWnd::GetDlgItem函数获取该Picture Control控件的指针。
3. 调用CWnd::Create函数创建一个滑动条控件,并设置好其ID和位置大小。
4. 调用CWnd::SetParent函数将滑动条控件作为Picture Control控件的子控件添加进去。
5. 调用CWnd::ShowWindow函数显示滑动条控件。
以下是示例代码:
```
// 获取Picture Control控件指针
CWnd* pPictureControl = GetDlgItem(IDC_PICTURE_CONTROL)
// 创建滑动条控件
CWnd* pSlider = new CSliderCtrl()
pSlider->Create(WS_CHILD | WS_VISIBLE | TBS_HORZ, CRect(10, 10, 200, 30), pPictureControl, IDC_SLIDER_CONTROL)
// 显示滑动条控件
pSlider->ShowWindow(SW_SHOW)
```
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)