picture控件太难用了,用它导入的图片我暂时还没发现改变图片大小的办法。我可以用CStatic类来实世友现按button在一个固定大小区域显示图片的功能。用兼容DC绘图的方法我搜灶槐就辩衫不说了。
void CDlg::OnPaint() //显示图片
{
CPaintDC dc(this); // device context for painting
CStatic *pStatic=new CStatic;
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
pStatic->Create(NULL, WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE,
CRect(10,10,100,100), this);
pStatic->SetBitmap(bmp.operator HBITMAP());
}
//按钮的单击事件
void CDlg::OnButton1()
{
static int m_index=0;
CStatic *pStatic=new CStatic;
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1+m_index);
pStatic->Create(NULL, WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE,
CRect(10,10,100,100), this);
pStatic->SetBitmap(bmp.operator HBITMAP());
m_index++;
m_index=m_index%4;
}
我导入了4幅位图,所以m_index=m_index%4;
另外:
用picture控件显示图片如下:
picture属性的type选择Bitmap
Image 选择一幅位图,提前导入工程中。
首先你可以把所有要放到图片添加茄世到res里,如果是用户打开文件那种就不必添加
1.要添加的
把它们颤举肢的id改成连续的,比如第一张id为IDI_P1,共10张
就在button响应答戚函数里加
static id=IDI_P1;
HICON hicon=AfxGetApp()->LoadIcon(id);
m_icon.SetIcon(hicon);//m_icon是picture控件的关联成员CStatic类型变量
2.直接打开的
基本思路都有了,去课本找下代码吧。