vs中怎样为程序设立背景图片呢?
问题描述:
我用vs2013写了一个窗口程序,但是不知道怎样给这个窗口程序弄上背景图片,请问应该使用哪个或者哪几个函数呢?请指教。
答
标准答案: 在处理WM_ERASEBGND 消息时在窗口客户区绘制图片。
答
在Dialog的构造函数中:
// 初始化背景图画刷
HBITMAP bmp = GetHBitmapFromFile(m_skinPath + "bk.jpg");
CBitmap* cbmp = CBitmap::FromHandle(bmp);
m_BKBrush.CreatePatternBrush(cbmp);
在Dialog的头文件中:
protected:
CBrush m_BKBrush;
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
OnCtlColor实现:
HBRUSH CCh001Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
//return hbr;
if(nCtlColor == CTLCOLOR_DLG){
return(HBRUSH)m_BKBrush.GetSafeHandle();
}
return hbr;
}
答
新建一个windows forms程序,直接在属性中设置image属性就可以了。
答
其实你要熟悉一下用C#编写form窗口时的几个文件都是干什么的,这样你想要自己编码的时候就知道该在哪里写一条语句或者一个函数了。其次,项目运行时的入口是program.cs里的Main()函数。下面的就是我用一句代码指定了pictureBox1里面的Image,先在窗口中添加一个pictureBox窗口组件,默认名字是pictureBox1,在Form1.cs里的public Form1()里添加了一行代码:
public Form1()
{
InitializeComponent();
//我添加的代码,指定图片的路径
pictureBox1.ImageLocation = "F:/csdn/WindowsFormsApplication1/WindowsFormsApplication1/IMG_20150217_160511.jpg";
}
你可以将pictureBox1的属性的sizeMode修改为stretchImage。效果如图:
![图片说明](https://img-ask.csdn.net/upload/201502/23/1424665302_558990.jpg)