在基于对话框的界面中有两个图片子控件A和B,A和B上分别有一个按钮,当点击图片A上的按钮a时,图片A充满整个对话框(即图片B隐藏),同理,当点击 图片B上的按钮b时,图片B充满整个对话框(即此时图片A隐藏)
请大家帮我设计整个界面,最好能给出代码的思想,或者能给出详细的代码!
不甚感激!
谢谢谢谢!

解决方案 »

  1.   

    图片子控件A.ShowWindow(SW_SHOW);图片子控件A.ShowWindow(SW_HIDE);
      

  2.   

    就是自绘对话框的背景呀。搞个变量(m_bgPath)保存背景图片的路径或资源ID。
    点击按钮A时,将m_bgPath设为img1,再调用Invalidate()刷新背景。
    点击按钮B时,将m_bgPath设为img2,再调用Invalidate()刷新背景。具体刷新背景的操作就是主对话框的WM_PAINT消息处理了。为对话框画背景图片:http://blog.csdn.net/joeblackzqq/article/details/7260467
      

  3.   

    CBitmap只能加载bmp,ico,cur图片格式。如果要加载如jpg,gif,png等格式,可以采用CImage类。参考:http://blog.csdn.net/joeblackzqq/article/details/7267873
    // 定义全局变量和全局函数
    WNDPROC oldProc_PIC1 = 0; // 保存IDC_PIC1控件默认的消息处理函数地址
    CString imgPath; // 保存背景图片地址BOOL DrawPic(HWND hWnd) // 在指定的控件上画图
    {
    CImage img;
    if(SUCCEEDED(img.Load(imgPath)))
    {
    CWnd *pWnd = CWnd::FromHandle(hWnd);
    CPaintDC dc(pWnd); // dc必须用指定的控件窗口来初始化,否则将看不到绘图结果
    CRect rect;
    pWnd->GetClientRect(rect); // 获取控件的大小
    img.Draw(dc.m_hDC, rect); return TRUE;
    }
    return FALSE; // 绘图失败
    }LRESULT NewProc_PIC1(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // IDC_PIC1控件对应的新的消息函数
    {
    switch (message)
    {
    case WM_PAINT:
    if(DrawPic(hWnd))
    return S_OK;
    else
    break;
    default:
    break;
    }
    return CallWindowProc(oldProc_PIC1, hWnd, message, wParam, lParam); // 调用默认的消息函数
    }