毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

MFC子窗口不显示图片 第2页

更新时间:2012-10-2:  来源:毕业论文

    CRect RpnlRC;/*右面板rect*/
    CRect wndRC;   
   
    CRect cltRC;    //客户区域
    GetClientRect(cltRC);
    int nHeight = cltRC.Height();
    int nWidth;

    /*创建左面的操作面板*/
    m_lPanel.Create(IDD_DIALOG_LEFT, this);
    m_lPanel.ShowWindow(SW_SHOW);
    m_lPanel.GetWindowRect(wndRC);
    nWidth = wndRC.Width();

    /*计算左面板的区域,把左面板放到这个区域中*/
    LpnlRC.left = 0;
    LpnlRC.top = 0;
    LpnlRC.bottom = nHeight;
    //LpnlRC.bottom = 500;
    LpnlRC.right = nWidth;

    m_lPanel.MoveWindow(LpnlRC);

    /*创建棋盘面板*/       
    m_ChessBoardPanel.Create(IDD_DIALOG_CHESS_BOARD, this);
    m_ChessBoardPanel.ShowWindow(SW_SHOW);
   
    /*计算棋盘的区域,把棋盘放到这个区域中,仍然使用变量pnlRC*/
    MpnlRC.left = LpnlRC.right;/*中面板紧邻左面板*/
    MpnlRC.top = 0;
    MpnlRC.bottom = nHeight;
    MpnlRC.right = cltRC.Width() - 50;/*临时处理*/

    m_ChessBoardPanel.MoveWindow(MpnlRC);

    return TRUE; 
}

BOOL CChessBoard::OnInitDialog()
{
  CDialog::OnInitDialog();
   
  /*加载棋盘位图*/
  OnPaint();//去掉这句,自动执行这个函数

  return TRUE;
}

棋盘对话框的.parent=主对话框的.this;就是把主对话框的窗口作为棋盘对话框的父窗口

在主窗体的重绘里,触发一下子窗体的绘制试试呢?

_lPanel是不是控件panel的变量,如果是,有两种可能:
1.位图被panel控件盖住了,你可以先屏蔽这个控件试试
2.m_ChessBoardPanel模盘面板的坐标不对或不合适,你单步执行看看坐标值,有可能进行坐标转换,就是客户区坐标和屏幕坐标的转换:ClientToScreen和ScreenToClient

上一页  [1] [2] 

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。