MFC操作——图片切换

MFC添加一个按钮和几个图片,当点击按钮时更换图片

#define MAX_COUNT 3 // 例如在资源中创建3张bmp图片,ID号连续

// 定义成员变量
int nIndex = 0;
CBitmap bmp[MAX_COUNT];

// 初始化bmp数组 导入 也 可以在OnInitDialog()中添加

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();
}


你可能感兴趣的:(mfc,button)