本帖最后由 rivaler 于 2013-04-11 10:52:03 编辑

解决方案 »

  1.   

    如果你贴图片是为了对话框的背景的话,不需要用图片控件,可以直接把对话框的背景给贴上图片,程序如下:先添加图片到资源里面,名字 IDB_PICvoid CFiveChessClientDlg::OnPaint() 
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
    int cxIcon = GetSystemMetrics(SM_CXICON);
    int cyIcon = GetSystemMetrics(SM_CYICON);
    CRect rect;
    GetClientRect(&rect);
    int x = (rect.Width() - cxIcon + 1) / 2;
    int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
    dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
    CDialog::OnPaint();
    }
    CDC* pDC = GetDC();
    CBitmap bmp1,bmp2,bk;
    CDC memdc;
    memdc.CreateCompatibleDC(pDC);
    bk.LoadBitmap(IDB_PIC);
            memdc.SelectObject(&bk);
    pDC->BitBlt(0,0,663,664,&memdc,0,0,SRCCOPY);
    bk.DeleteObject();
    ReleaseDC(&memdc);
    }
      

  2.   

    我在对话框上用picture control 静态的加 图片当背景图 是为了整个对话框样式的设计(按钮的大小,位置等)所以动态的加没用 
    我在对话框上用picture control 静态的加 图片当背景图 是为了整个对话框样式的设计(按钮的大小,位置等)所以动态的加没用。3楼说的 移开也不好 因为既然是静态的背景图就占了整个对话框的大小了4楼说 改变Tab Order  改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了
    问题补充:整个对话框的布局 已经设计好了 (图片形式)
    怎么样以这个图片为模板 在设计对话框
    (将图片静态的设置为背景 然后将各个控件 按图片上的位置 排布)有没有类似的方法 
      

  3.   

    改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了
    那就把 控件 都加到 picture 控件里, 然后把 picture 的 属性 改为 WS_CLIPDRILDREN。
      

  4.   

    那就这样吧,用键盘上的TAB键来选择对应要操作的控件,用键盘上下左右按键来移动。位置排列好后再去掉图片控件,对各个控件进行操作,最后再把图片放回去,这样应该可以吧,如果我没理解错误楼主的意思