MFC的picture控件的使用

MFC的picture控件的使用,第1张

你是想设置背景色吧

直接使用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)

```


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11620242.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存