|
发表于 2010-12-8 10:59:36
|
显示全部楼层
回复【3楼】twd3621576
-----------------------------------------------------------------------
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4438899&bbs_page_no=1&search_mode=3&search_text=rockt&bbs_id=9999
回复【2楼】rockt
-----------------------------------------------------------------------
楼主啊!请问你在http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4406659&bbs_page_no=1&search_mode=3&search_text=rockt&bbs_id=9999
问的问题是怎么解决的呢?
我是用下面方法实现的(用的是鼠标)
我建了3个任务。task1负责对话框的创建.task2不断获得鼠标的X,Y值,然后向X,Y所在位置所属的窗口发送消息.
void task1(void* pdata) //负责圣诞框的创建
{
//while(1){
WM_SetDesktopColor(GUI_RED); //设置背景桌面窗口的颜色
WM_SetCreateFlags(WM_CF_MEMDEV); /* Use memory devices on all windows to avoid flicker */
GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
OSTimeDlyHMSM(0, 0, 0, 3);
//}
}
void task2(void* pdata) //不断获得鼠标的X,Y值,然后向X,Y所在位置所属的窗口发送消息。
{
while(1){
printf("task2 ");
GUI_MOUSE_GetState(&State); //获得鼠标的X,Y值和Pressed值
GUI_CURSOR_SetPosition(State.x,State.y); //设置鼠标指针的位置
//if(!WM__hWinFocus){
WM__hWinFocus=WM_Screen2hWin(State.x,State.y);//由坐标获得所在位置的窗口的句柄,并设置为焦点窗口
//}
WM_MESSAGE Msg;
WM_LOCK();
WM_KEY_INFO Info;
//Info.Key =1;
Info.PressedCnt =State.Pressed;
Msg.MsgId =WM_TOUCH;
Msg.Data.p = &Info;
WM__SendMessage(WM__hWinFocus, &Msg); //发送消息给焦点窗口
WM_UNLOCK();
OSTimeDlyHMSM(0, 0, 0, 3);
}
}
void task3(void* pdata) //刷新窗口
{
while (1)
{
printf("task3 ");
GUI_Exec();
OSTimeDlyHMSM(0, 0, 0, 3);
}
}
但是我这样有一个问题,就是鼠标一点那个BUTTON,BUTTON就生效了,还没等的松开鼠标就已经消失了。诶有些问题。
请问你是怎么做的呢? |
|