[请教]使用ptgetresource的迷惑?

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

[请教]使用ptgetresource的迷惑?

帖子johnsonyoung » 周日 6月 20, 2004 6:17 pm

非常感谢斑竹唐先生和这里的各位高手,帮助在下解决了很多疑惑。
用phab的widget时,常常要在程序中得到它的属性。PtGetResource虽然参数不多,而且与PtSetResource的参数完全相同,可使用起来二者并不相同,有很多迷惑。例如,要得到widget的dim,虽然PhDim_t的结构成员只是两个short成员,但使用ptgetresource必须使用以下语句:
PhDim_t *dim;
PtGetResource(widget,Pt_ARG_DIM,&dim,0);

可是要设定widget的dim,则语句为:
PhDim_t dim;
dim.w=200,dim.h=100;
PtSetResource(widget,Pt_ARG_DIM,&dim,0);

可是现在我想得到一个ptpolygon各个顶点的坐标,应该怎么做呢?首先知道要得到的是Pt_ARG_POINTS,可是这个参数是PhPoint_t的数组,要怎样才能得到各个顶点的数值?我试图这样做:
int i;
PhPoint_t *pnt[4];//4个顶点的多边形
PtGetResource(widget,Pt_ARG_POINTS,&pnt,0);
for(i=0;i<4;i++)
printf("point %d:%d,%d\n",i,pnt[0]->x,pnt[0]->y);

结果证明这种方法只能得到pnt[0]->x,pnt[0]->y,其他的点则因为指针的问题错误而使程序异常退出.
可是如果改成:
PhPoint_t pnt[4];
其他不变,结果完全错误,但是程序不会异常退出.
或者我把所有的指针初始化,结果虽然不会异常退出,但除了pnt[0]->x,pnt[0]->y结果正确外,其他pnt[i]->x,pnt[i]->y的结果都是0, 也不正确.
请教我的这个程序应该怎样修改,关于PtGetResource中参数的使用有没有更清楚的说明呢?谢谢!
johnsonyoung
Senior Member
 
帖子: 84
注册: 周五 10月 10, 2003 11:43 am

回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客

cron