我想实现以下功能,当鼠标移动时,在鼠标旁出现一个小窗口,作提示用。但是这个小窗口当鼠标移动时要清除,然后重新创建。
if (!pWnd==NULL)
{
pWnd->CloseWindow();
delete pWnd;//出错
pWnd = NULL;
}
pWnd=new CWnd();
pWnd->Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE,CRect(0, 0, 20, 20), this, 1234);
已经开过两次贴,但是都没有解决问题。我想知道if (!pWnd==NULL)判断一个窗口是否存在对吗?为什么程序总出错
错误信息:读取位置发生访问冲突

解决方案 »

  1.   

    直接delete pWnd;就行了.
    另外判断if (pWnd!=NULL)这样写不行吗?
      

  2.   

    如果改成这样
    if (!pWnd==NULL)
    {
    delete pWnd;//还是出错呀
    pWnd = NULL;
    }
    pWnd=new CWnd();
    pWnd->Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE,CRect(0, 0, 20, 20), this, 1234);
    错误信息:读取位置发生访问冲突
      

  3.   

    pWnd记得要在构造函数里面初始化为NULL,就可以了。
      

  4.   

    CWnd *pWnd = NULL;
    if (!pWnd==NULL)
    {
    delete pWnd;
    pWnd = NULL;
    }
    pWnd=new CWnd();
    pWnd->Create(_T("STATIC"), "Hi", WS_CHILD | WS_VISIBLE,CRect(0, 0, 20, 20), this, 1234);
    pWnd.ShowWindow(SHOW);// 上面代码还是有问题的,你在网上搜一些非模式对话框的例子来做。
      

  5.   

    把pWnd作为成员变量,在构造函数里面初始化!
      

  6.   

    谢谢,zqql()正解。
    新的问题又来了,为什么出现的窗口一闪就没有了呢?
      

  7.   

    http://community.csdn.net/Expert/topic/4567/4567838.xml?temp=.5575067
    参考上面这个贴,看看是不是同一个问题,不一定的。