/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, 0x000080FF); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_0_WIDTH, "Name", GUI_TA_LEFT | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_2_WIDTH, "State", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font24B_1); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL,GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL,DEEPBLUE); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_SELFOCUS,GUI_BLACK); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, DEEPBLUE); updateListViewContent(hItem); // USER START (Optionally insert additional code for further widget initialization) hItem = etWinCreate(); // USER break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_LISTVIEW_0: // Notifications sent by 'Listview' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_SEL_CHANGED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; // USER START (Optionally insert additional code for further Ids) // USER END } break; // USER START (Optionally insert additional message handling) // USER END default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; WM_MESSAGE myMsg; int i; switch (pMsg->MsgId) { case USER_MSG_LV_UPDATE: updateListViewContent( WM_GetDialogItem(pMsg->hWin,ID_LISTVIEW_0)); break; case USER_MSG_SKIN: pSkin = &(lvWinSkins[pMsg->Data.v]); WINDOW_SetBkColor(pMsg->hWin,pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); LISTVIEW_SetFont(hItem, &GUI_Font30); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); break; case WM_INIT_DIALOG: pSkin = &(lvWinSkins[SysConf.Skin]); // // Initialization of 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, pSkin->bkColor); // // Initialization of title // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_0_WIDTH, "船名", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteSet_Col_2_WIDTH, "选中", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font30); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); updateListViewContent(hItem); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); break; default: WM_DefaultProc(pMsg); break; } }
/** * @brief Callback routine of Info dialog * @param pMsg: pointer to data structure of type WM_MESSAGE * @retval None */ static void _cbPlaylistDialog(WM_MESSAGE * pMsg) { int NCode; int Id; int r; WM_HWIN hItem; static char tmp[64]; uint32_t i = 0; switch (pMsg->MsgId) { case WM_INIT_DIALOG: hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_OKPL); WM_SetCallback(hItem, _cbButton_okPL); hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_ADDPL); WM_SetCallback(hItem, _cbButton_add2PL); hItem = LISTVIEW_CreateEx(60, 30, 300, 250, pMsg->hWin, WM_CF_SHOW, 0, ID_VIDEO_LIST); LISTVIEW_SetFont(hItem, &GUI_Font16_1); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL, 0x00DCA939); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_SEL, GUI_WHITE); LISTVIEW_SetHeaderHeight(hItem, 0); LISTVIEW_AddColumn(hItem, 300, "", GUI_TA_VCENTER | GUI_TA_LEFT); LISTVIEW_SetGridVis(hItem, 0); LISTVIEW_SetAutoScrollV(hItem, 1); WIDGET_SetEffect(hItem, &WIDGET_Effect_None); LISTVIEW_SetTextAlign(hItem, 0, GUI_TA_HCENTER); if(VideoList.ptr > 0) { for(i=0; i<VideoList.ptr; i++) { strcpy(FileInfo.pRoot, (char *)VideoList.file[i].name); FILEMGR_GetFileOnly ((char *)tmp, (char *)FileInfo.pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, i, (char *)tmp); } } break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_OKPL: /* Notifications sent by 'OK' */ switch(NCode) { case WM_NOTIFICATION_RELEASED: GUI_EndDialog(pMsg->hWin, 0); break; } break; case ID_BUTTON_ADDPL: switch(NCode) { case WM_NOTIFICATION_RELEASED: FileInfo.pfGetData = k_GetData; FileInfo.pMask = acMask_video; hItem = CHOOSEFILE_Create(pMsg->hWin, 48, 30, 330, 240, apDrives, GUI_COUNTOF(apDrives), 0, "Video files", 0, &FileInfo); WM_MakeModal(hItem); r = GUI_ExecCreatedDialog(hItem); if (r == 0) { if((strstr(FileInfo.pRoot, ".emf")) || (strstr(FileInfo.pRoot, ".EMF"))) { if(VideoList.ptr < FILEMGR_LIST_DEPDTH) { strcpy((char *)VideoList.file[VideoList.ptr].name, FileInfo.pRoot); FILEMGR_GetFileOnly ((char *)tmp, (char *)FileInfo.pRoot); hItem = WM_GetDialogItem(pMsg->hWin, ID_VIDEO_LIST); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, VideoList.ptr, (char *)tmp); VideoList.ptr++; } } WM_InvalidateWindow(pMsg->hWin); } break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'Window' // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, 0x00000080); // // Initialization of 'Listview' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_SetFont(hItem, &GUI_Font28); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_0_WIDTH, "Dis", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_1_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_MoniteList_Col_2_WIDTH, "Ang", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem, &GUI_Font24B_1); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_UNSEL,GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL,DEEPBLUE); LISTVIEW_SetTextColor(hItem, LISTVIEW_CI_SELFOCUS,GUI_BLACK); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, GUI_WHITE); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, DEEPBLUE); updateListViewContent(hItem); // USER START (Optionally insert additional code for further widget initialization) // USER END break; case WM_PAINT: GUI_SetFont(&GUI_Font24_1); GUI_SetColor(GUI_YELLOW); GUI_SetTextMode(GUI_TM_TRANS); if( (index>=0) && (index<N_boat) ) { GUI_DispStringAt(boat_list_p[index]->name,LV_MoniteList_WIDTH+90,80); lltostr(boat_list_p[index]->latitude,pStrBuf); GUI_DispStringExAt(pStrBuf,LV_MoniteList_WIDTH+20,120); lltostr(boat_list_p[index]->longitude,pStrBuf); GUI_DispStringExAt(pStrBuf,LV_AllList_WIDTH,160); sprintf(pStrBuf, "%d", boat_list_p[index]->SOG); GUI_DispStringExAt(pStrBuf,LV_AllList_WIDTH+40,200); } break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_LISTVIEW_0: // Notifications sent by 'Listview' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_SEL_CHANGED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; // USER START (Optionally insert additional code for further Ids) // USER END } break; // USER START (Optionally insert additional message handling) // USER END default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hWin; WM_HWIN hText; const WM_KEY_INFO* pInfo; WM_HWIN hItem = 0; int i = 0; int NCode; int Id; hWin = pMsg->hWin; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case USER_MSG_LANGUAGE: InfoSel(0,1); break; case WM_PAINT: GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetColor(GUI_BLACK); GUI_AA_DrawLine(190,0,220,60); GUI_AA_DrawLine(220,60,800,60); // if (Language == 0) // { // GUI_DispStringAt("所处 页/共 页",560,435); // } // else // { // GUI_DispStringAt (pLanguage->Page,560,435); // } // GUI_DispDecAt(thispage,605,435,3); // GUI_DispDecAt(pageNum,700,435,3); //GUI_DispStringAt("高电压警告",230,28); GUI_PNG_Draw(&acPOWER,sizeof(acPOWER),755,35); break; case WM_INIT_DIALOG: pLanguage = &Lgumainwin[Language]; hButton = WM_GetDialogItem (hWin,ID_BUTTON_0); BUTTON_SetBkColor (hButton,BUTTON_CI_UNPRESSED,GUI_WHITE); BUTTON_SetTextColor (hButton,BUTTON_CI_UNPRESSED,GUI_BLACK); BUTTON_SetTextAlign (hButton,GUI_TA_HCENTER|GUI_TA_VCENTER); BUTTON_SetText(hButton,pLanguage->ButtonInfo[0]); BUTTON_SetFocusColor (hButton,GUI_WHITE); WIDGET_SetEffect (hButton,&WIDGET_Effect_None); WM_SetCallback (hButton,&mybutton); WM_SetFocus (hButton); hListview = WM_GetDialogItem (hWin,ID_LV_0); hListhead = LISTVIEW_GetHeader(hListview); LISTVIEW_SetFont(hListview,&GUI_Font30); LISTVIEW_SetRowHeight(hListview,40); LISTVIEW_SetHeaderHeight(hListview,30); LISTVIEW_SetBkColor (hListview,LISTVIEW_CI_SELFOCUS,GUI_GRAY); LISTVIEW_SetBkColor (hListview,LISTVIEW_CI_SEL,GUI_WHITE); LISTVIEW_SetTextColor (hListview,LISTVIEW_CI_SEL,GUI_BLACK); LISTVIEW_SetTextColor(hListview,LISTVIEW_CI_SELFOCUS,GUI_WHITE); WIDGET_SetEffect(hListhead,&WIDGET_Effect_3D); HEADER_SetBkColor (hListhead,GUI_BLACK); HEADER_SetTextColor(hListhead,GUI_WHITE); HEADER_SetFont(hListhead,&GUI_Font24); LISTVIEW_AddColumn(hListview,80,"序号",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息编码",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,130,"yyy/mm/dd",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,90,"hh:mm",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,120,"频道",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息类型",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_AddColumn(hListview,100,"信息状态",GUI_TA_HCENTER|GUI_TA_VCENTER); LISTVIEW_SetTextAlign(hListview,6,GUI_TA_LEFT|GUI_TA_VCENTER); // WM_HWIN - TEXT mainwinText[0] = WM_GetDialogItem(hWin,ID_TEXT_3); //高压警告 mainwinText[1] = WM_GetDialogItem(hWin,ID_TEXT_0); //INT mainwinText[2] = WM_GetDialogItem(hWin,ID_TEXT_1); //loc1,loc2,chs mainwinText[3] = WM_GetDialogItem(hWin,ID_TEXT_2); //time mainwinText[4] = WM_GetDialogItem(hWin,ID_TEXT_4); //page WM_SetCallback(mainwinText[1],&mytext); WM_SetCallback(mainwinText[2],&mytext); TEXT_SetText(mainwinText[0],""); TEXT_SetFont(mainwinText[4],&GUI_Font30); TEXT_SetTextAlign(mainwinText[4],TEXT_CF_RIGHT); TEXT_SetText(mainwinText[4],"所处 01页/共 02页"); //time TEXT_SetTextAlign(mainwinText[3],TEXT_CF_VCENTER); TEXT_SetFont(mainwinText[3],&GUI_Font30); TEXT_SetText(mainwinText[3],"UTC 2015.10.24 17:30"); for (i=0; i<16; i++) { INFO_add(&TESTDATA[i]); } if (rowNum < 8) pageNum = 1; else if (rowNum%8 == 0) pageNum = rowNum/8; else pageNum = rowNum/8+1; InfoSel(0,1); //DisPage(); WM_SetCallback (hListview,&mylistview); break; default: WM_DefaultProc(pMsg); break; } }
// // Buttoncallback; // void mybutton (WM_MESSAGE *pMsg) { WM_HWIN hWin; WM_KEY_INFO *pInfo; int column,row,row_index,del_row; int i; hWin = pMsg->hWin; switch (pMsg->MsgId) { case USER_MSG_LANGUAGE: //更改语言 pLanguage = &Lgumainwin[Language]; if (Language == 0) { BUTTON_SetFont(hButton,&GUI_Font30); TEXT_SetFont(mainwinText[5],&GUI_Font30); HEADER_SetFont(hListhead,&GUI_Font24); } else { BUTTON_SetFont(hButton,&GUI_Font20_1); TEXT_SetFont(mainwinText[5],&GUI_Font24_1); HEADER_SetFont(hListhead,&GUI_Font16_1); LISTVIEW_SetHeaderHeight(hListview,29); } DisPage(); BUTTON_SetText(hButton,pLanguage->ButtonInfo[0]); for(i = 0; i<7; i++) HEADER_SetItemText(hListhead,i,pLanguage->ListHead[i]); break; case WM_SET_FOCUS: if (pMsg->Data.v) { BUTTON_SetBkColor(hButton,BUTTON_CI_UNPRESSED,GUI_GRAY); BUTTON_SetTextColor(hButton,BUTTON_CI_UNPRESSED,GUI_WHITE); BUTTON_SetFocusColor(hButton,GUI_GRAY); } else { BUTTON_SetBkColor(hButton,BUTTON_CI_UNPRESSED,GUI_WHITE);//BUTTON_SetTextColor (hButton,BUTTON_CI_UNPRESSED,GUI_BLACK); BUTTON_SetTextColor(hButton,BUTTON_CI_UNPRESSED,GUI_BLACK); BUTTON_SetFocusColor(hButton,GUI_WHITE); } BUTTON_Callback(pMsg); break; case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch (pInfo->Key) { case GUI_KEY_ENTER: break; case GUI_KEY_PRINT: WM_BringToTop(PrintWin); WM_SetFocus(WM_GetDialogItem(PrintWin,ID_PrintMenu)); break; case GUI_KEY_MENU: WM_BringToTop(Menuwin); WM_SetFocus (WM_GetDialogItem(Menuwin,ID_MENU)); MENU_SetSel (WM_GetDialogItem(Menuwin,ID_MENU),0); MenuSel = 0; break; case GUI_KEY_LOC1: pCannel = " 490 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_LOC2: pCannel = "4209.5横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_CHS: pCannel = " 486 横"; WM_InvalidateWindow(WM_GetDialogItem(mainwin,ID_TEXT_1)); break; case GUI_KEY_UP: break; case GUI_KEY_DOWN: if (LISTVIEW_GetNumRows(hListview)) { thispage = 1; WM_SetFocus(hListview); LISTVIEW_SetSel(hListview,0); DisPage(); //WM_InvalidateRect(mainwin,&PageRect); //刷新页数提示 } break; case GUI_KEY_LEFT: if(InfoType > 0) InfoType--; else InfoType = 3; switch (InfoType) { case 0: BUTTON_SetText(hWin,pLanguage->ButtonInfo[0]); LISTVIEW_DeleteAllRows(hListview); InfoSel(0,1); break; case 1: BUTTON_SetText(hWin,pLanguage->ButtonInfo[1]); LISTVIEW_DeleteAllRows(hListview); InfoSel(1,1); break; case 2: BUTTON_SetText(hWin,pLanguage->ButtonInfo[2]); LISTVIEW_DeleteAllRows(hListview); InfoSel(2,1); break; case 3: BUTTON_SetText(hWin,pLanguage->ButtonInfo[3]); LISTVIEW_DeleteAllRows(hListview); InfoSel(3,1); break; } if (rowindex<8) { pageNum = 1; } else if (rowindex%8 == 0) pageNum = rowindex/8; else pageNum = rowindex/8+1; thispage = 1; DisPage(); //WM_InvalidateRect(mainwin,&PageRect);//刷新页数提示 break; case GUI_KEY_RIGHT: InfoType++; if(InfoType == 4) InfoType = 0; switch (InfoType) { case 0: BUTTON_SetText(hWin,pLanguage->ButtonInfo[0]); LISTVIEW_DeleteAllRows(hListview); InfoSel(0,1); break; case 1: BUTTON_SetText(hWin,pLanguage->ButtonInfo[1]); LISTVIEW_DeleteAllRows(hListview); InfoSel(1,1); break; case 2: BUTTON_SetText(hWin,pLanguage->ButtonInfo[2]); LISTVIEW_DeleteAllRows(hListview); InfoSel(2,1); break; case 3: BUTTON_SetText(hWin,pLanguage->ButtonInfo[3]); LISTVIEW_DeleteAllRows(hListview); InfoSel(3,1); break; } if (rowindex<8) pageNum = 1; else if (rowindex%8 == 0) pageNum = rowindex/8; else pageNum = rowindex/8+1; thispage = 1; DisPage(); //WM_InvalidateRect(mainwin,&PageRect);//刷新页数提示 break; } break; default : BUTTON_Callback(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int SelectedRow = -1; long SelectedMMSI = 0; int i; switch (pMsg->MsgId) { case USER_MSG_LV_UPDATE: updateListViewContent(WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0)); break; case USER_MSG_SKIN: pSkin = &(lvWinSkins[pMsg->Data.v]); INFO("case skin:%s",pMsg->Data.v==SKIN_Day?"Day":"Night"); WINDOW_SetBkColor(pMsg->hWin,pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); break; case WM_INIT_DIALOG: pSkin = &(lvWinSkins[SysConf.Skin]); hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, pSkin->bkColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetTextColor(hItem, pSkin->ttl_Text); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6); TEXT_SetTextColor(hItem, pSkin->inf_Label); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); WM_SetCallback(hItem, &myListViewListener); LISTVIEW_AddColumn(hItem, LV_AllList_Col_0_WIDTH, "距离", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_AllList_Col_2_WIDTH, "MMSI", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, LV_AllList_Col_3_WIDTH, "状态", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetHeaderHeight(hItem,LV_MoniteList_Header_HEIGHT); LISTVIEW_SetRowHeight(hItem,LV_MoniteList_Row_HEIGHT); LISTVIEW_SetFont(hItem,&GUI_Font30); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_UNSEL, pSkin->itm_bkUnsel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SEL, pSkin->itm_bkSel); LISTVIEW_SetBkColor(hItem, LISTVIEW_CI_SELFOCUS, pSkin->itm_bkFocus); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_UNSEL, pSkin->itm_txUnsel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SEL, pSkin->itm_txSel); LISTVIEW_SetTextColor(hItem,LISTVIEW_CI_SELFOCUS, pSkin->itm_txFocus); for(i=LV_PAGE_SIZE; i>0; i--) { LISTVIEW_AddRow(hItem, NULL); } LISTVIEW_SetSel(hItem, 0); hItem = LISTVIEW_GetHeader(hItem); HEADER_SetBkColor(hItem,pSkin->Header_Bk); HEADER_SetTextColor(hItem,pSkin->Header_Text); isSub2Inited = 1; break; case WM_PAINT: GUI_SetColor(pSkin->inf_bkColor); GUI_FillRectEx(&infoRect); GUI_SetTextMode(GUI_TM_TRANS); GUI_SetFont(&GUI_Font24); GUI_SetColor(pSkin->inf_Label); GUI_DispStringAt("按确定键选择或取消选择监控的网位仪", LV_AllList_WIDTH+20, LV_AllList_Y+240); GUI_SetFont(&GUI_Font24_1); GUI_SetColor(pSkin->inf_txColor); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); if(WM_HasFocus(hItem) == FALSE) { sprintf(pStrBuf, " 0/%3d", N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); break; } // if( N_boat <= 0 ){ // sprintf(pStrBuf, " 0/ 0"); // GUI_DispStringAt(pStrBuf, LV_AllList_WIDTH-80, LV_AllList_Y-20); // break; // } SelectedRow = LISTVIEW_GetSel(hItem); LISTVIEW_GetItemText(WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0), LV_AllList_Col_MMSI, SelectedRow, pStrBuf, 11); SelectedMMSI = strtoi(pStrBuf); if(SelectedMMSI <= 0) { sprintf(pStrBuf," 0/%3d", N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); break; } for(i=0; i<N_boat ; i++) { if(SimpBerthes[i].pBerth->Boat.user_id == SelectedMMSI) { break; } } if(i<N_boat) { sprintf(pStrBuf,"%3d/%3d", i+1 ,N_boat); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH-80,LV_AllList_Y-20); GUI_DispStringAt(SimpBerthes[i].pBerth->Boat.name,LV_AllList_WIDTH+80,85); lltostr(SimpBerthes[i].latitude,pStrBuf); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,125); lltostr(SimpBerthes[i].longitude,pStrBuf); GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,165); // if(SysConf.Unit == UNIT_km) // { // int sog = SimpBerthes[i].pBerth->Boat.SOG *18; // sprintf(pStrBuf, "%3d.%02dkm",sog/100, sog%100); // } // else // { // sprintf(pStrBuf, "%2d.%dkt", SimpBerthes[i].pBerth->Boat.SOG/10, // SimpBerthes[i].pBerth->Boat.SOG%10); // } sprintf(pStrBuf, "%2d.%dkt", SimpBerthes[i].pBerth->Boat.SOG/10, SimpBerthes[i].pBerth->Boat.SOG%10); GUI_DispStringAt(pStrBuf, LV_AllList_WIDTH+80,205); sprintf(pStrBuf, "%3d", SimpBerthes[i].pBerth->Boat.COG/10); pStrBuf[3] = 194; pStrBuf[4] = 176; pStrBuf[5] = '\0'; GUI_DispStringAt(pStrBuf,LV_AllList_WIDTH+80,245); } break; default: WM_DefaultProc(pMsg); break; } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) int i; int j; int k; int slave_column; char buffer[10]; new_GUI_value.BUTTON_value.send_button= FALSE; // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // // Initialization of 'id_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0); TEXT_SetText(hItem, "slave id:"); // // Initialization of 'function_radio' // hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_0); RADIO_SetText(hItem, "read holding registers", 0); RADIO_SetText(hItem, "write single register", 1); RADIO_SetText(hItem, "read single coil", 2); RADIO_SetText(hItem, "write single coil", 3); RADIO_SetText(hItem, "read multiple coils", 4); // // Initialization of 'multiple_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1); TEXT_SetText(hItem, "MULTIPLE REGISTER REQUEST"); // // Initialization of 'from_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2); TEXT_SetText(hItem, "from:"); // // Initialization of 'to_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3); TEXT_SetText(hItem, "to:"); // // Initialization of 'single_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_4); TEXT_SetText(hItem, "SINGLE REGISTER REQUEST"); // // Initialization of 'number_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_5); TEXT_SetText(hItem, "number:"); // // Initialization of 'send_button' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetText(hItem, "SEND"); // // Initialization of 'response_view' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_AddColumn(hItem, 60, "address", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, 80, "slave 1", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddColumn(hItem, 80, "slave 2", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_AddColumn(hItem, 30, "Col", GUI_TA_LEFT | GUI_TA_VCENTER); LISTVIEW_SetAutoScrollV(hItem, 1); // // Initialization of 'status_view' // hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1); LISTVIEW_AddColumn(hItem, 129, "status", GUI_TA_HCENTER | GUI_TA_VCENTER); LISTVIEW_SetGridVis(hItem, 1); LISTVIEW_SetItemText(hItem, 0, 0, "0"); LISTVIEW_SetItemText(hItem, 0, 0, "0"); LISTVIEW_SetRowHeight(hItem, 20); LISTVIEW_SetHeaderHeight(hItem, 20); // // Initialization of 'exit_button' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1); BUTTON_SetText(hItem, " X"); // // Initialization of 'write_req_text' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_6); TEXT_SetText(hItem, "WRITE REGISTER REQUEST"); // // Initialization of 'value_txt' // hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_7); TEXT_SetText(hItem, "value:"); // USER START (Optionally insert additional code for further widget initialization) //aggiungo casella Status hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1); LISTVIEW_AddRow(hItem, NULL); LISTVIEW_SetItemText(hItem, 0, 0, "Ready"); //aggiungo caselle di risposta hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); for (i = 0; i < 60; i++) LISTVIEW_AddRow(hItem, NULL); // USER END break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_RADIO_0: // Notifications sent by 'function_radio' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_0); new_GUI_value.RADIO_value.radio_selection = RADIO_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_0: // Notifications sent by 'send_button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(600, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) modbus_task(); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1); if (modbus_rx.error != 0) { GUI_Delay(100); modbus_task(); } hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1); if (modbus_rx.error != 0) { LISTVIEW_SetItemBkColor(hItem, 0,0,0, GUI_RED); GUI_Delay(100); LISTVIEW_SetItemText(hItem, 0, 0, "No Response"); PlayAudio(50, 60); PlayAudio(0, 20); PlayAudio(50, 100); } else if (modbus_rx.func & 0x80) { LISTVIEW_SetItemBkColor(hItem, 0,0,0, GUI_YELLOW); GUI_Delay(100); LISTVIEW_SetItemText(hItem, 0, 0, "R: Wrong Message"); PlayAudio(90, 60); PlayAudio(90, 20); PlayAudio(90, 100); } else { //cancello vecchi valori hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); LISTVIEW_DeleteAllRows(hItem); GUI_Delay(100); for (i = 0; i < 60; i++) LISTVIEW_AddRow(hItem, NULL); GUI_Delay(100); hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1); LISTVIEW_SetItemBkColor(hItem, 0,0,0, GUI_GREEN); GUI_Delay(100); LISTVIEW_SetItemText(hItem, 0, 0, "R: Message Accepted"); PlayAudio(600, 20); PlayAudio(600, 20); PlayAudio(200, 20); //se ho fatto una richiesta read if(new_GUI_value.RADIO_value.radio_selection == 0 || new_GUI_value.RADIO_value.radio_selection == 2 || new_GUI_value.RADIO_value.radio_selection == 4) { if(new_GUI_value.SPINBOX_value.slave_id == 1) slave_column = 1; else slave_column = 2; //scrivo sul listview 0 hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0); //mi prendo la sezione dati effettivi //ho chiesto gli holding? if(new_GUI_value.RADIO_value.radio_selection == 0){ for(i = 0; i < modbus_rx.len; i++) { //se leggo holdings sprintf(buffer, "%d", new_GUI_value.SPINBOX_value.multiple_register_from + i +2000); LISTVIEW_SetItemText(hItem, 0, i, buffer); sprintf(buffer, "%d", modbus_rx.data_converted[i]); LISTVIEW_SetItemText(hItem, slave_column, i, buffer); } } //ho chiesto i coils? else if(new_GUI_value.RADIO_value.radio_selection == 4 ){ for(i = 0; i < modbus_rx.len; i++) { sprintf(buffer, "%d", new_GUI_value.SPINBOX_value.multiple_register_from + i ); LISTVIEW_SetItemText(hItem, 0, i, buffer); if(modbus_rx.data_converted[i] != 0) sprintf(buffer, "%s", "ON"); else sprintf(buffer, "%s", "OFF"); LISTVIEW_SetItemText(hItem, slave_column, i, buffer); } } //ho chiesto 1 coil? else if(new_GUI_value.RADIO_value.radio_selection == 2){ sprintf(buffer, "%d", new_GUI_value.SPINBOX_value.single_register_number); LISTVIEW_SetItemText(hItem, 0, 0, buffer); if(modbus_rx.data_converted[0] != 0) sprintf(buffer, "%s", "ON"); else sprintf(buffer, "%s", "OFF"); LISTVIEW_SetItemText(hItem, slave_column, 0, buffer); } } } // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_LISTVIEW_0: // Notifications sent by 'response_view' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_SEL_CHANGED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_LISTVIEW_1: // Notifications sent by 'status_view' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_SEL_CHANGED: // USER START (Optionally insert code for reacting on notification message) // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_1: // Notifications sent by 'exit_button' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(600, 20); PlayAudio(600, 20); PlayAudio(200, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) new_GUI_value.SPINBOX_value.slave_id = 0; new_GUI_value.SPINBOX_value.multiple_register_from = 0; new_GUI_value.SPINBOX_value.multiple_register_to = 0; new_GUI_value.SPINBOX_value.single_register_number = 0; new_GUI_value.SPINBOX_value.write_value = 0; new_GUI_value.RADIO_value.radio_selection = 0; PlayAudio(900, 20); PlayAudio(1000, 20); PlayAudio(1100, 20); hItem = pMsg->hWin; GUI_EndDialog(hItem, 0); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_SPINBOX_0: // Notifications sent by 'slave_id_spinbox' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_MOVED_OUT: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_0); new_GUI_value.SPINBOX_value.slave_id = SPINBOX_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_SPINBOX_1: // Notifications sent by 'from_spinbox' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_MOVED_OUT: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_1); new_GUI_value.SPINBOX_value.multiple_register_from = SPINBOX_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_SPINBOX_2: // Notifications sent by 'to_spinbox' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_MOVED_OUT: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_2); new_GUI_value.SPINBOX_value.multiple_register_to = SPINBOX_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_SPINBOX_3: // Notifications sent by 'number_spinbox' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_MOVED_OUT: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_3); new_GUI_value.SPINBOX_value.single_register_number = SPINBOX_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_SPINBOX_4: // Notifications sent by 'write_value_spinbox' switch(NCode) { case WM_NOTIFICATION_CLICKED: // USER START (Optionally insert code for reacting on notification message) PlayAudio(150, 20); // USER END break; case WM_NOTIFICATION_RELEASED: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_MOVED_OUT: // USER START (Optionally insert code for reacting on notification message) // USER END break; case WM_NOTIFICATION_VALUE_CHANGED: // USER START (Optionally insert code for reacting on notification message) hItem = WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_4); new_GUI_value.SPINBOX_value.write_value = SPINBOX_GetValue(pMsg->hWinSrc); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; // USER START (Optionally insert additional code for further Ids) // USER END } break; // USER START (Optionally insert additional message handling) // USER END default: WM_DefaultProc(pMsg); break; } }