我在对话框上加载一个图片,然后再对话框上添加一个按钮
单击此按钮,对话框的图片发生转换,转换为另一张。
代码如下:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP_BLUE);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();现在只能加载一张图片,请问如何加载其他图片
代替背景图片阿急啊
单击此按钮,对话框的图片发生转换,转换为另一张。
代码如下:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP_BLUE);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();现在只能加载一张图片,请问如何加载其他图片
代替背景图片阿急啊
{
// TODO: Add your control notification handler code here
if (m_brBk.m_hObject != NULL)
{
m_brBk.DeleteObject();
bmp.LoadBitmap(IDB_BITMAP_WIN);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
}
}
加了一个按钮,使用如上代码,直接运行,无法更新图片
如果调试,便可以更改图片
什么原因阿?
在按键响应改变参数
onpaint
{
UINT uIDpic[5]={
IDB_BITMAP_BLUE,
IDB_BITMAP_ex1,
IDB_BITMAP_ex2,
IDB_BITMAP_ex3,
IDB_BITMAP_ex4
} CBitmap bmp;
bmp.LoadBitmap(uIDpic[m_nID]);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
}OnButton
{
m_nID = m_nID++ % 5;
Invalidate(false);
}
#define MAX_COUNT 3 // 例如在资源中创建3张bmp图片,ID号连续// 成员变量
int nIndex = 0;
CBitmap bmp[MAX_COUNT];// 初始化bmp数组
for(int i=0; i<MAX_COUNT; i++)
{
bmp[i].LoadBitmap(IDB_BITMAP1 + i);
}// WM_PAINT消息响应函数
void CXXXDlg::OnPaint()
{
CPaintDC dc(this); CDC memDC;
memDC.CreateCompatibleDC(&dc);
CRect rc;
GetClientRect(&rc);
HBITMAP hOldbmp = (HBITMAP)memDC.SelectObject(bmp[(nIndex++) % MAX_COUNT]); dc.BitBlt(0, 0, rc.Width(), rc.Height(), &memDC, 0, 0, SRCCOPY); memDC.SelectObject(hOldbmp); memDC.DeleteDC();
}// Button按钮的BN_CLICKED消息
void CXXXDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here Invalidate();
}