VC对话框加载图片、改变背景颜色、画图、显示隐藏控件

来源:互联网 发布:linux cp 目录覆盖 编辑:程序博客网 时间:2024/05/10 05:37

1.加载图片

在OnPaint()中加入如下代码

CDC *pDC = g_mainWnd->GetDC();
CBitmap Bitmap;
   //将位图装入内存
   Bitmap.LoadBitmap(IDB_BITMAP1);
   CDC MemDC;
   //创建内存设备环境
   MemDC.CreateCompatibleDC(pDC);
   CBitmap *OldBitmap=MemDC.SelectObject(&Bitmap);
   //创建BITMAP 结构变量
   BITMAP bm;
   //获取位图信息
   Bitmap.GetBitmap(&bm);
   //显示位图
   pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);
   //恢复设备环境
   OldBitmap->DeleteObject();
   ReleaseDC(pDC);

 

2.在对话框中画图

在按钮事件中加入如下代码

   CDC *pDC = g_mainWnd->GetDC();
    CBrush brushColor(RGB(255,255,0));//填充的颜色
    CPen penColor;
    penColor.CreatePen(PS_SOLID,1,RGB(0,64,128));//边框颜色
    pDC->SelectObject(penColor);
    pDC->SelectObject(brushColor);
    pDC->Rectangle(rect);
    brushColor.DeleteObject();
    penColor.DeleteObject();
ReleaseDC(pDC);

3 .改变背景颜色

在OnPaint()函数的else中加入如下代码

(1)方法1

CPaintDC dc(this);
CRect rect;
GetClientRect(rect);
dc.FillSolidRect(rect,RGB(255,0,0));

(2)方法2
在事件按钮中加入如下代码,如果界面刷新时,背景颜色就被刷掉,所以最好加入到OnPaint()函数中
CDC *pDC = this->GetDC();
CBrush brushColor(RGB(255,255,0));//填充的颜色
CPen penColor;
penColor.CreatePen(PS_SOLID,1,RGB(0,64,128));//边框颜色
pDC->SelectObject(penColor);
pDC->SelectObject(brushColor);
CRect rect;
GetClientRect(rect);
pDC->Rectangle(rect);
brushColor.DeleteObject();
penColor.DeleteObject();
ReleaseDC(pDC);

4.显示隐藏控件
(1)显示隐藏
GetDlgItem(IDC_ECIT1)->ShowWindow(SW_HIDE);//隐藏
GetDlgItem(IDC_ECIT1)->ShowWindow(SW_SHOW);//显示

(2)调整控件位置并赋予大小设定
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 );     //获取控件指针,IDC_EDIT1为控件ID号
pWnd->MoveWindow( CRect(0,0,100,100) );   //在窗口左上角显示一个宽100、高100的编辑控件

5:改变对话框颜色;

 

添加类成员变量CBrush m_brush;
//m_brush.CreateSolidBrush(RGB(255, 255, 255));
添加一个消息WM_CTLCOLOR
然后添加消息响应函数: 
HBRUSH CXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if(nCtlColor ==CTLCOLOR_DLG) //添加这两行
return m_brush; //添加这两行,是否为对话框的判断语句


return hbr;
}

void CXXDlg::OnBnClickedbtn()
{
//把颜色选择框的值填到红色部分中
m_brush.DeleteObject();
m_brush.CreateSolidBrush(RGB(0, 255, 255));
Invalidate();
}
0 0
原创粉丝点击