我用WindmL2.0,做键盘响应,根据按不同的键调用不同的子程序.我看过论坛原来的帖子:
键盘响应的程序实现: 首先初始化 static UGL_EVENT_SERVICE_ID eventServiceId; static UGL_EVENT_HANDLER_ID eventHandlerId; static UGL_EVENT_Q_ID qId; static UGL_EVENT event; static UGL_STATUS status; 其次,获得输入设备的ID,产生输入队列: uglDriverFind(UGL_EVENT_SERVICE_TYPE, 0, (UGL_UINT32 *)&eventServiceId); qId=uglEventQCreate(eventServiceId,100); 最后,根据键盘输入,响应键盘 UGL_FOREVER { status=uglEventGet(qId,&event,sizeof(event),UGL_WAIT_FOREVER); if(status!=UGL_STATUS_Q_EMPTY) { UGL_INPUT_EVENT *pInputEvent=(UGL_INPUT_EVENT *)&event; c=pInputEvent->type.keyboard.key; tch(c) { case 'q' :。。。。。。。。; case 'w' :。。。。。。。。; } } } }
我按上述方法试过,在目标机上没有键盘响应.如果在图形uglInitialize();后,按键无任何反应;如果用printf(),按什么键就在屏幕上显示这个键对应的字母或数字.我的WindmL配置过,包括键盘设备,配置后build了,并且在工程配置中包含了WindmL和symbol table.请各位朋友帮帮忙,帮我分析一下看到底是怎么回事,是程序的问题还是哪里的配置有问题,多谢.
对于上述程序段中,static UGL_EVENT_HANDLER_ID eventHandlerId;有什么用?在程序中还要不要加上
UGL_INPUT_DEVICE_ID InputdevId;
uglDriverFind (UGL_KEYBOARD_TYPE, 0, (UGL_UINT32 *)&InputdevId);
啊??????