三九宝宝网宝宝绘画儿童画

用MFC建了基于对话框的工程要怎么添加背景图片啊!急求!

03月03日 编辑 39baobao.com

[mfc按钮的添加和图片导入]void CBmpView::OnPaint() { CPaintDC dc(this); // device context for painting RECT rect; CDC *md = new CDC; CBitmap *bitmap = new CBitmap; GetClientRect(&rect);...+阅读

先创建图片

方法一创建图片 CBitmap::LoadBitmap(资源名称);

方法二创建图片 CBitmap::LoadBitmap(资源ID);

创画刷 CBrush::CreatePatternBrush( 创建的CBitmap);

重载这个函数

HBRUSH CDailog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

HBRUSH hbr = CSizeDlg::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

//功能: 设置静态窗口背景为空

HBRUSH hbr = NULL;

switch(nCtlColor)

{

case CTLCOLOR_STATIC: //静态框

break;

case CTLCOLOR_DLG: //对话框

if(NULL == m_clrBkBrush.m_hObject)

hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

else

hbr = m_clrBkBrush;

break;

default:

hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

break;

}

// TODO: Return a different brush if the default is not desired

return hbr;

}

VC怎么给简单对话框应用程序添加背景图片

1.在CBkcolorDlg.h中添加 //在public中定义如下:

CBrush m_brBk;CBitmap bmp; 2. TestDlg.cpp文件中构造函数CBkcolorDlg::CBkcolorDlg(CWnd* pParent /*=NULL*/)

: CDialog(CBkcolorDlg::IDD, pParent)中,添加如下代码: //用CBitmap ::LoadBitmap加载位图资源 ,IDB_BITMAP_BKBMP是位图资源的ID标识 bmp.LoadBitmap(IDB_BITMAP_BKBMP); 在初始化对话框的函数CBkcolorDlg::OnInitDialog()中添加如下代码 m_brBk.CreatePatternBrush(&bmp); //创建具有指定位图模式的逻辑刷子

bmp.DeleteObject(); 3.最后在打开类向导,找到WM_CTLCOLOR消息,重载得对应函数OnCtlColor(),添加如下:

HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

if (pWnd == this)

{

return m_brBk;

}

return hbr;

}

这样做就可以给对话框添加简单的背景图片了,此代码经过测试。

mfc加载图片资源怎么弄

如果想把外部图片导入MFC资源库,可以在资源视图点右键,添加资源,选择插入,找到你的bmp文件,点确定,这样图片就进到资源列表了.

如果想给让一个图片显示出来,可以使用兼容DC.写个例子给你

为准备要显示图片的窗口添加一个WM_ERASEBKGND消息,然后mfc自动帮你加上如下函数,在里面写上内容就行了,给你加了注释慢慢理解.如果图片是想贴在一个CDialog或是Clistbox里,都是可以的,只要将控件子类化,然后为该类添WM_ERASEBKGND消息就行.

BOOL XXXXXX::OnEraseBkgnd(CDC* pDC)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

CRect rect;

GetClientRect(rect);//得到当前区域大小

CBitmap bitmap;

bitmap.LoadBitmapW(IDB_BITMAP1);//创建位图对象并附加位图

BITMAP bmp;

bitmap.GetBitmap(&bmp);//为了得到附加的位置的长宽

CDC CompatbleDC;

CompatbleDC.CreateCompatibleDC(pDC);//创建兼容DC

CompatbleDC.SelectObject(bitmap);//位图选入DC

pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&CompatbleDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);//将兼容dc贴到当前dc中并返回真,通知系统背景已经擦除成功

return TRUE;

}

这样做的原理,其实是ON_WM_ERASEBKGND消息在每次窗口背景须要擦除的时候调用,比绘制函数之前制造,在擦除背景的时候本来是使用一个默认的画刷擦除背景,现在不用画刷直接用兼容DC为给贴图,看起来就像是窗口里有图片一样

您知道在vs2010中怎样添加图片吗

【文章标题】: VS2010 实现对话框程序设置背景图片

void CMySendToDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

// 使图标在工作区矩形中居中

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// 绘制图标

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CPaintDC dc(this);

CRect rect;

GetClientRect(&rect);//获取客户的的大小

CDC memDC;

CBitmap cBitmap;

CBitmap* pOldMemBmp=NULL;

cBitmap.LoadBitmap(IDB_BITMAP1);

memDC.CreateCompatibleDC(&dc);//创建一个设备对象上下文

pOldMemBmp=memDC.SelectObject(& cBitmap);

BITMAP bmp;

cBitmap.GetBitmap(&bmp);

SetStretchBltMode(dc,STRETCH_HALFTONE);//据说能减少失真

dc.StretchBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);

memDC.SelectObject(pOldMemBmp);

CDialogEx::OnPaint();

}

}

以下为关联文档:

MFC基于单文档的程序读取一幅bmp图片并显示有一些代码看不懂这是双缓冲绘图。 双缓冲绘图步骤: 1、加载图像 代码中是用的HBITMAP方式,就是下面这段。(还可以是GDI+等等) HBITMAP hBitmap= (HBITMAP)LoadImage(NULL,BmpName,IMAGE_BITMAP,...

您好请问我自己用MFC单文档写了一个简单的图片查看器首先要在资源字符串中,添加要注册的文件扩展名(在标准字符串IDR_XXXTYPE), 然后在app类的InitInstance里添加以下代码 // Enable drag/drop open m_pMainWnd->DragAcceptFiles(...

怎么用PS软件在图片上添加文字?步骤1:选择工具栏上的"T"字形文字工具按钮,如果横排文字则选择【横排文字工具】,如果竖排的选择【直排文字工具】。 步骤2:在图片上面单击鼠标左键,出现输入字体的光标;输入需要添...

用Word2007添加文字和图片水印该怎么做一、用Word2007为文档添加文字水印 在word 2007中打开需要添加水印的文档。在“页面布局”菜单下选择“水印”,我们可以看到word 2007为我们提供了一些水印。我们可以直接选...

怎么用photoshop给照片背景添加云彩这里主要通过图片过滤器来完成这个效果图,如果嫌只加个蓝天不够过瘾,下面再加个蓝天白云。先看看最终效果图和原图对比。 1、选择工具面板“魔术棒”,点击天空部分。 2、点击天...

求DZ7发贴添加附件时调用文件对话框的javascript代码<a href="#" onclick="test1(2)" id="a3">hello</a> <a href="#" onclick="test2(1)" id="b3">hello2</a> <script language="javascript"> <!-- function test1(num) { window.alert(num)...

怎么在提问上添加图片啊1.你可以先把照片上传到你的空间里 然后在知道里发空间图片的地址就可以. 2.因为不支持硬盘上传图片, 那么首先要将您电脑中的图片上传到空间上, 获取一个图片URL地址后能粘贴...

mfc编程如何设置用图片控件动态显示jpg图像jpg显示的步骤:1。打开图片控件的绘图DC。2。使用OleLoadPicture函数读取jpg图像到内存中。(导入olepro32.dll)3。向DC上绘制图像示例如下:CDC *pDC = GetDlgItem(IDC_STATIC_IM...

用MFC实现对打开图片的拖动效果你需要定义几个标志变量用来表示鼠标左键按下,鼠标当前位置 比如: BOOL m_leftMouseDown; // 左键是否按下的标准变量 BOOL m_isMouseInBitmapRound; // 鼠标在当前位图范围内吗...

推荐阅读
图文推荐