Pro Engineer 二次开发工程图表格绘制

    技术2022-05-20  32

    int AppendParameterTable(CString *Cparameter_name,CString *Cparameter_value,int ParamNum)

    {

    //*===================================绘制表格===================*

    double width[PRO_TABLE_MAX_COLS], height[PRO_TABLE_MAX_ROWS]; 

      ProHorzJust justifications[PRO_TABLE_MAX_COLS]; 

         ProDwgtabledata table_data;

       ProDrawing drawing;

    ProPoint3d origin;

    ProDwgtable table;

    ProMouseButton btn;

    ProFileName InfoFile;

         int i;

     

         //指定输入和显示的信息文件名

         ProStringToWstring (InfoFile,"Info.txt");

     

    //表格的位置设置

    origin[0]=300;

    origin[1]=700;

    origin[2]=0;

     

         //获得当前工程图的句柄

    ProMdlCurrentGet((ProMdl*)&drawing);

     

         ProDwgtabledataAlloc(&table_data);

            ProDwgtabledataOriginSet(table_data, origin);

     

    for (i=0; i<3; i++) justifications[i] = PROHORZJUST_LEFT;

    for (i=0; i<3; i++) width[i]=20;

     

    ProDwgtabledataColumnsSet(table_data, 3, width, justifications);

     

    for (i=0; i<ParamNum+5; i++) height[i]=2;

     

         ProDwgtabledataRowsSet(table_data, ParamNum+5, height);

         ProDwgtabledataSizetypeSet(table_data, PRODWGTABLESIZE_CHARACTERS);

        //ProDwgtabledataSizetypeSet(table_data,PRODWGTABLESIZE_SCREEN);

    ProDrawingTableCreate(drawing, table_data, 0, &table);

    ProDwgtableDisplay(&table);  

     

    //==========填充表格===========//

    ProWstring *lines;

    ProCharLine strtmp;

         //分配内存

         ProArrayAlloc (1, sizeof(wchar_t *),1,(ProArray*)&lines);

     

    lines[0] = (wchar_t *)calloc(PRO_COMMENT_SIZE, sizeof(wchar_t));

     

    strcpy(strtmp,"参数名");

    ProStringToWstring(lines[0],strtmp);

    ProDwgtableTextEnter(&table,1,1,lines);

    strcpy(strtmp,"参数值");

    ProStringToWstring(lines[0],strtmp);

    ProDwgtableTextEnter(&table,2,1,lines);

    strcpy(strtmp,"参数说明");

    ProStringToWstring(lines[0],strtmp);

    ProDwgtableTextEnter(&table,3,1,lines);

     

    for(int m=0;m<ParamNum;m++)//将参数信息添入表格

    {

    lstrcpy(lines[0],Cparameter_name[m]);

    ProDwgtableTextEnter(&table,1,m+2,lines);//参数名

     

    lstrcpy(lines[0],(LPWSTR)"&");

    lstrcat(lines[0],Cparameter_name[m]);

    ProDwgtableTextEnter(&table,2,m+2,lines);//参数值

     

    lstrcpy(lines[0],Cparameter_meaning[m]);

    ProDwgtableTextEnter(&table,3,m+2,lines);//参数含义

    }

     

    ProArrayFree( (ProArray*)&lines);

    ProMessageDisplay(InfoFile, "table creation complete.");

    return TRUE;

    }


    最新回复(0)