HWND hWnd = ::FindWindow(NULL,_T("DTS"));
CTreeCtrl* pCtrl = (CTreeCtrl*) ::GetDlgItem(hWnd,IDC_GROUPLIST);
        ASSERT(pCtrl != NULL);
TV_INSERTSTRUCT  TreeCtrlItem;
HTREEITEM hTreeItem;
TreeCtrlItem.hInsertAfter = TVI_LAST;
TreeCtrlItem.item.mask = TVIF_TEXT|TVIF_PARAM;
//设置一级节点
TreeCtrlItem.hParent = TVI_ROOT;
TreeCtrlItem.item.pszText = _T("OK");
TreeCtrlItem.item.lParam = 1;
hTreeItem = pCtrl->InsertItem(&TreeCtrlItem);希望能通过B对话框对A对话框的Tree形控件进行添加项目操作,编译都通过了,但执行时发生读取错误,为什么,
程序有什么问题吗

解决方案 »

  1.   

    调试了么?看看错在那一句?是不是你FindWindow返回的为空?
      

  2.   

    DTS.exe中的0x7839006a(mfc80ud.dll)处未处理的异常:
    0xC0000005:0x000b0ca2时发生访问冲突
      

  3.   

    hWnd,不是你自己进程的Tree形控件句柄吧?不同进程间的指针不能通用的。
      

  4.   

    用WriteProcessMemory系列函数读写其他进程的地址。或则使用钩子。
      

  5.   

    hWnd是获得标题为"DTS"的窗口的句柄,没有错误啊!
      

  6.   

    hWnd是获得具有树形句柄的窗口的句柄,该窗口的标题名"DTS" ,没有错误啊
      

  7.   

    hWnd是获得标题为"DTS"的窗口的句柄,
    这个窗口是在当前进程里么?如果不是,这段代码就不可用。
      

  8.   

    A窗口是B窗口的父窗口,B窗口是当前窗口,从当前窗口获得父窗口控件的句柄,理论应该是啊