自动刷新

您好!

我用API新建的文件夹,必须手动刷新,有没有自动刷新的API?

谢谢!

Parents
  • 您可以在新建文件夹后紧接着用接口aaApi_ExpandDscTreeItemByMoniker()主动展开父文件夹,从而实现刷新的效果。

    具体做法如下:
    得到父文件夹的GUID:aaApi_GetProjectGUIDsByIds;
    通过GUID得到Moniker:aaApi_GetProjectMonikersByGuids;
    通过Moniker展开父文件夹:aaApi_ExpandDscTreeItemByMoniker。

       
    This is a test

    Answer Verified By: 玉懂 邵 

  • 您好!
    aaApi_ExpandDscTreeItemByMoniker需要HWND hWndTree ,这个该怎么获取?
    谢谢!
  • 您好!
    这是代码:
    if(!aaApi_ExecuteSqlStatement (insertSql) || !aaApi_ExecuteSqlStatement (upSql))
    {
    CString errMess;
    errMess.Format(L"套图目录创建失败,错误原因:%s",aaApi_GetMessageByErrorId(aaApi_GetLastErrorId()));
    MessageBox(NULL,errMess,L"PW提示",MB_OK|MB_ICONERROR);
    }else
    {
    MessageBox(NULL,L"套图目录创建成功",L"PW提示",MB_OK);
    RefreshFolderTree( lProjId);
    }


    BOOL RefreshFolderTree( LONG lProjectId){
    HWND hWndTree = aaApi_GetMainDscTree();
    LONG lItemCount=1;
    GUID ProjGuids[]={0};
    long err;
    if(!aaApi_GetProjectGUIDsByIds (lItemCount, &lProjectId,ProjGuids))
    {
    err = aaApi_GetLastErrorId();

    } else{
    HMONIKER monikers[] = {0};
    if(! aaApi_GetProjectMonikersByGuids ( lItemCount,ProjGuids,monikers ))
    {
    err = aaApi_GetLastErrorId();

    }else{

    //hWndTree = aaApi_GetActiveFrameWindow() ;
    //hWndTree = aaApi_GetMainDocumentList();
    err = aaApi_GetLastErrorId();
    aaApi_ExpandDscTreeItemByMoniker (hWndTree,monikers);
    err = aaApi_GetLastErrorId();

    }


    }


    return true;

    }
  • 您这段代码在什么环境下调用的,麻烦把更外围的代码发过来,看看那时Tree初始化了没?

       
    This is a test

  • 您好!
    这是那段代码:不过我没初始化tree
    if(lpCommand->lCommandId == m_uiPrjCmdIdtt)
    {
    if(specialty !=L"ML03")
    {
    MessageBox(NULL,L"只能在专业类别文件夹下创建套图目录!",L"PW提示",MB_OK|MB_ICONERROR);
    return AAHOOK_ERROR;
    }
    CCreateFldDlg dlg;
    if(dlg.DoModal() ==IDOK)
    {
    CString szFolderName = dlg.m_folderName;
    CString szFolderDesc = dlg.m_folderdesc;


    long newProId=0;//新文件夹ID
    if(aaApi_CreateProject(&newProId,lProjId,1,1,0,-1,0,0,szFolderName,szFolderDesc))
    {
    lProjectId.Format(L"%d",newProId);
    CString m_szinsertSql = L"insert into dbo.T_SC_001 values("+lProjectId+L",'','',replace(newid(),'-',''),"
    L"(select rowguid from dbo.T_DM_002 where DICT_ITEM_ID = '"+L"ML04"+L"'),'"+szUser+L"',CONVERT(nvarchar(19),getdate(),120),''"
    L",CONVERT(nvarchar(19),getdate(),120),'','','','','','')";
    if(!aaApi_ExecuteSqlStatement(m_szinsertSql))
    {
    CString messErr;
    messErr.Format(L"文件夹类别选择失败,错误原因:%s",aaApi_GetMessageByErrorId(aaApi_GetLastErrorId()));
    MessageBox(NULL,messErr,L"PW提示",MB_OK|MB_ICONERROR);
    return AAHOOK_ERROR;
    }
    else{


    insertSql=L"insert into dbo.T_SC_005 values('"+szFolderName+L"','','','','','','','','','',"
    L"'','','','','','','','','','','','','','"+lProjectId+L"',replace(newid(),'-',''),"
    L"'','"+szUser+L"',CONVERT(nvarchar(19),getdate(),120),'',CONVERT(nvarchar(19),getdate(),120),'','','','','','')";

    upSql=L"update dbo.T_SC_005 set T_SC_004_GUID=T_SC_004.ROWGUID, T_SC_003_GUID=T_SC_004.T_SC_003_GUID,"
    L"T_SC_002_GUID=T_SC_004.T_SC_002_GUID from T_SC_005,T_SC_004 where T_SC_005.FOLDER_ID='"+lProjectId+L"' "
    L"and T_SC_004.FOLDER_ID='"+ParentId+L"'";

    if(!aaApi_ExecuteSqlStatement (insertSql) || !aaApi_ExecuteSqlStatement (upSql))
    {
    CString errMess;
    errMess.Format(L"套图目录创建失败,错误原因:%s",aaApi_GetMessageByErrorId(aaApi_GetLastErrorId()));
    MessageBox(NULL,errMess,L"PW提示",MB_OK|MB_ICONERROR);
    }else
    {
    MessageBox(NULL,L"套图目录创建成功",L"PW提示",MB_OK);
    //RefreshFolderTree( lProjId);
    }
    }

    }else{

    CString errMess;
    errMess.Format(L"文件夹类别生成失败,错误原因:%s",aaApi_GetMessageByErrorId(aaApi_GetLastErrorId()));
    MessageBox(NULL,errMess,L"PW提示",MB_OK|MB_ICONERROR);

    }

    }

    }
  • Tree是PW本身初始化的,无需我们进行。

    从这段代码看,在这个时间点调用肯定是初始化过的,获取Tree句柄应该没有问题的。

    如果方便只能把整个工程(可以简化一下,屏蔽一些代码)邮件发过来,我调试运行看看了。

       
    This is a test

  • 你能通过API 创建文件夹 

    调用aaApi_GetMainDscTree 就应该能得到树的句柄,参考sdk上对应的api 文档 check 下代码

Reply Children
No Data