CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): Adagio (칸타빌레)
날 짜 (Date): 1995년06월14일(수) 14시29분59초 KDT
제 목(Title): Motif 프로그램에서...



XtAddCallback함수의 파라미터중에서 마지막 user data를 위한 파라미터가 있죠...

거기에 내가 여러개의 (서로다른 데이타 타입의) 데이타를 넘기려면 구조체를 
잡아서 구조체의 변수의 번지를 를 넘기는 걸로 알고 있습니다.

근데...그렇게 하면 어디가 잘못되었는지 Bus error가 나요.

구조체를 extern으로 ㅏ잡아서 하면 제대로 되는데....:(



<내 프로그램 >
struct MyData{
    Widget canvas;
    XColor color[128];
};

을 파일로 만들어서 프로그램에서 include해주었습니다.

#include info.h  <----- 위의 파일 포함.
Thresh(w)
Widget w;
{

 struct MyData mydata;

pushb = XtCreateManagedWidget("pushb",xmPushButtonWidgetClass,
                              rowcol3,NULL,0);
XtAddCallback(pushb,XmNactivateCallback,DrawCallback,&mydata);
}

void DrawCallback(pushb,pmydata,cbs)
Widget pushb;
struct MyData *pmydata;
XmPushButtonCallbackStruct *cbs ;
{
 

 for(i=0;i<128;i++){
               
XSetForeground(XtDisplay(pmydata->canvas),gc,pmydata->color[i].pixel);
               
XDrawLine(XtDisplay(pmydata->canvas),XtWindow(pmydata->canvas),gc,i,10,i,200);
                 }
                 XFlush(XtDisplay(pmydata->canvas));


 
여기서 제가 하고자 하는것은  color[i]에 만들어 놓은 칼라를 윈도우에 뿌리는 
것입니다.

 
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.