|
我想知道SetUserDatas后为什么GetUserdata数据没取到static const GUI_WIDGET_CREATE_INFO _aDialogAdd[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 450, 0, 0x0, 0 },
};资源表在这
{
hAddDlg = GUI_CreateDialogBox(_aDialogAdd, GUI_COUNTOF(_aDialogAdd), cb_Add1Dlg, hParent, 0, 0);
WM_SetFocus(hAddDlg);//聚焦到此窗口
WINDOW_SetBkColor(hAddDlg,0xF9F9F9);
//创建选择列表
hItem = SWIPELIST_CreateUser(100,47,280,400,WM_GetClientWindow(hAddDlg),WM_CF_SHOW|WM_CF_HASTRANS,0,ID_SWIPELTST_0,sizeof(hWinTemp));
SWIPELIST_SetUserData(hItem,&hWinTemp,sizeof(hWinTemp));
printf("win=%ld\r\n",hWinTemp);
WM_MOTION_SetMoveable(hItem, WM_CF_MOTION_Y, 1);
SWIPELIST_AddSepItem(hItem,"选择",40) ;
SWIPELIST_SetFont(hItem, SWIPELIST_FI_SEP_ITEM , &GUI_FontHZ32B);
SWIPELIST_SetFont(hItem, SWIPELIST_FI_ITEM_HEADER, &GUI_FontHZ24B);
SWIPELIST_SetFont(hItem, SWIPELIST_FI_ITEM_TEXT, &GUI_FontHZ16B);
SWIPELIST_SetBkColor(hItem,SWIPELIST_CI_BK_ITEM_UNSEL,0xDB9611);
//SWIPELIST_SetBkColor(hSwipelist,SWIPELIST_CI_BK_ITEM_SEL,GUI_GRAY);
SWIPELIST_SetBkColor(hItem,SWIPELIST_CI_BK_SEP_ITEM,0xC8A05E);
SWIPELIST_SetTextColor(hItem, SWIPELIST_CI_ITEM_HEADER_UNSEL, GUI_WHITE);
SWIPELIST_SetTextColor(hItem, SWIPELIST_CI_ITEM_HEADER_SEL, GUI_WHITE);
SWIPELIST_SetDefaultTextAlign(GUI_TA_VCENTER| GUI_TA_LEFT);//设置字体左
for(i=0;i<GUI_COUNTOF(Instrument_N);i++)
{
SWIPELIST_AddItem(hItem,Instrument_N.text,35);
}
SWIPELIST_SetOwnerDraw(hItem, _OwnerDraw);
}
在回调函数里面用
static void cb_Add1Dlg(WM_MESSAGE *pMsg)
{
case WM_UPDATAWIN: //这个是自定义消息
printf("win=%ld\r\n",hWinTemp);
SWIPELIST_GetUserData(pMsg->hWinSrc,&hWinTemp,sizeof(hWinTemp));
printf("win=%ld\r\n",hWinTemp);
//hItem=WM_GetDialogItem(pMsg->hWin,ID_SWIPELTST_0);如果改用这个就会死机硬件错误中断,,
// SWIPELIST_GetUserData(pMsg->hWinSrc,&hWinTemp,sizeof(hWinTemp));
break;
}
问题1.SetUserDatas后为什么GetUserdata数据没取到
问题2.对话框是否有影响,控件的写入用户数据资源表需要设置数据大小?(我测试过有影响,但不知道结论是)
问题3.对话框能否使用wm_setUserData 和WM_GetUserdata,(测试过,但一样取不到数据)
问题4. hWIN = WINDOW_CreateUser(160, 80, 480, 300,hParent,WM_CF_SHOW,0,ID_FRAMEWIN_0,_cbOneDialog,sizeof(pDataInfo));
// WINDOW_SetUserData(hWIN,&pDataInfo,sizeof(pDataInfo));
printf("pDataInfo=%p\r\n",pDataInfo);
// WINDOW_GetUserData(hWIN,&pDataInfo1,sizeof(pDataInfo1));
// printf("pDataInfo1=%p\r\n",pDataInfo1);
同样测试了WINDOW控件的,一样在回调函数接受不到,在本函数内有能获取,GetUserdata函数有什么条件才能触发?
问题5.在问题4的同个函数内又加了个
hItem = BUTTON_CreateUser(260, 220, 110, 40,hFRAMEWIN,WM_CF_SHOW,0,ID_BUTTON_1,4);
BUTTON_SetFont(hItem, &GUI_FontHZ24B);
BUTTON_SetTextColor(hItem,LISTWHEEL_CI_UNSEL,0xC8A05E);
BUTTON_SetText(hItem, "下一步");
BUTTON_SetUserData(hItem,&pDataInfo,sizeof(pDataInfo));
按键却可以在回调函数内获取用户数据
这个是成功取到的
|
|