小弟初学MFC ,做了一个五子棋游戏的雏形,但是一旦打开另一个窗口,再进到我自己做的五子棋游戏时,原来的棋盘上的棋子就不见了 ,只有我最初写在ONpain()函数中的棋盘,问高手要如何解决!~还有我想定义一个自己的对话框,但是我想程序运行 时先运行这个我自己定义的 对话框,这个应该怎么办!?请 高手一并回答!~不胜感激啊!~

解决方案 »

  1.   

    要显示的内容 都放到onpaint里面  先运行自己定义的对话框 就在theapp里设个条件 先运行自己的对话框  
      

  2.   

    棋盘数据保存到数组中
    onpaint 事件中 重绘数组数据 就OK
      

  3.   

    刷新问题吧,你把绘图操作放在WM_PAINT消息响应函数中
      

  4.   

    将关于绘图的操作都放到OnPaint()函数中实现。如果你想在主窗口显示前先显示自己的对话框,需要在
    CMyApp类的InitInstance()函数中加上如下代码:CMyDlg  myDlg;
    if (myDlg.DoModal != IDOK)
    {
    return FALSE;
    } CMainDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with Cancel
    }
      

  5.   

    另外,为防止界面刷新时闪烁,需要采用双缓冲的机制进行内存绘制,具体怎么实现,google一下“双缓冲”就知道了。