/********************************************************************* * * Dialog callback routine */ static void _cbBk_Frame(WM_MESSAGE * pMsg) { int NCode, Id; WM_HWIN hWin = pMsg->hWin; switch (pMsg->MsgId) { case WM_PAINT: PaintDialog(pMsg); break; case WM_INIT_DIALOG: InitDialog(pMsg); break; case WM_KEY: switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) { case GUI_KEY_ESCAPE: GUI_EndDialog(hWin, 1); break; case GUI_KEY_ENTER: GUI_EndDialog(hWin, 0); break; } break; case WM_NOTIFY_PARENT: GUI_DispStringAt("Frame",10,220); Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(NCode) { case WM_NOTIFICATION_RELEASED: { if(Id == GUI_ID_BUTTON0) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'0'); } if(Id == GUI_ID_BUTTON1) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'1'); } if(Id == GUI_ID_BUTTON2) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'2'); } if(Id == GUI_ID_BUTTON3) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'3'); } if(Id == GUI_ID_BUTTON4) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'4'); } if(Id == GUI_ID_BUTTON5) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'5'); } if(Id == GUI_ID_BUTTON6) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'6'); } if(Id == GUI_ID_BUTTON7) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'7'); } if(Id == GUI_ID_BUTTON8) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'8'); } if(Id == GUI_ID_BUTTON9) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'9'); } if(Id == GUI_ID_BUTTON10) { EDIT_AddKey(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT),'.'); } /* BackSpace */ if(Id == GUI_ID_BUTTON11) { //EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),NULL);//清空输入框,挨个删除用下面两行 WM_SetFocus(WM_GetDialogItem(hWN_Dialog_PID_Frame,PID_EDIT)); GUI_SendKeyMsg(GUI_KEY_BACKSPACE,1); GPIO_ResetBits(GPIOF,GPIO_Pin_7); } /* PID Parameter Edit choese*/ { if(Id == GUI_ID_BUTTON12 || Id == GUI_ID_EDIT0) { PID_Para_Edit_Flag = Kp; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON13 || Id == GUI_ID_EDIT1) { PID_Para_Edit_Flag = Ki; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON14 || Id == GUI_ID_EDIT2) { PID_Para_Edit_Flag = Kd; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; //GUI_ID_EDIT2 } if(Id == GUI_ID_BUTTON15 || Id == GUI_ID_EDIT3) { PID_Para_Edit_Flag = E; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; } if(Id == GUI_ID_BUTTON17 || Id == GUI_ID_EDIT4) { PID_Para_Edit_Flag = Set; PID_EDIT = PID_Para_Edit_Flag + GUI_ID_EDIT0; //GUI_ID_EDIT2 } /* OK Key */ if(Id == GUI_ID_BUTTON16) { /* Store the last array(5) */ value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); BK_Light = SLIDER_GetValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_SLIDER0)); SetPWM(BK_Light,PWM_BACK_LIGHT); //!< Not the PID configuration Period PID_CFG_Flag = 0; WM_DeleteWindow(hWN_Dialog_PID_Frame); WM_ShowWindow(hWM_HBKWIN_CURVE); WM_HideWindow(hWM_HBKWIN_CFG_PID); } } /* Up and down of the order of the PID Array */ { if(Id == GUI_ID_BUTTON18) { value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); /* Get the E_Percent */ { if(0 == CounterPID) { E_Percent[0] = EDIT_GetFloatValue ( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3) ); E_Percent[1] = 1 - E_Percent[0]; } } CounterPID++; if(6 == CounterPID) { CounterPID = 0; } itoa(CounterPID,bufTextOrder,10); TEXT_SetText( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_TEXT0),bufTextOrder); if(1 == CounterPID) { EDIT_SetFloatValue ( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3), E_Percent[1]); } /* Set the same value to edit */ if( 2 == CounterPID || 4 == CounterPID) { EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),E_Percent[0]); EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4),value_PID[0].SetPoint); } else if( 3 == CounterPID || 5 == CounterPID) { EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT3),E_Percent[1]); EDIT_SetFloatValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4),value_PID[1].SetPoint); } } /** Previous button **/ if(Id == GUI_ID_BUTTON19) { value_PID[CounterPID].Proportion = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT0) ); value_PID[CounterPID].Integral = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT1) ); value_PID[CounterPID].Derivative = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT2) ); value_PID[CounterPID].SetPoint = EDIT_GetFloatValue( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_EDIT4) ); CounterPID--; if(-1 == CounterPID) { CounterPID = 5; } itoa(CounterPID,bufTextOrder,10); TEXT_SetText( WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_TEXT0),bufTextOrder); } } if(Id == GUI_ID_SLIDER0) { BK_Light = SLIDER_GetValue(WM_GetDialogItem(hWN_Dialog_PID_Frame,GUI_ID_SLIDER0)); SetPWM(BK_Light,PWM_BACK_LIGHT); } } break; } default: WM_DefaultProc(pMsg); } }
static void _cbProtection_FrameWin(WM_MESSAGE * pMsg) { switch (pMsg->MsgId) { case WM_NOTIFY_PARENT: { WM_HWIN hObjSrc = pMsg->hWinSrc; int Id = WM_GetId(hObjSrc); int NCode = pMsg->Data.v; switch (NCode) { case WM_NOTIFICATION_GOT_FOCUS: { if (focus_Modbus_settings != hObjSrc) { /* Визначаємо координати об'єкта, який сфокусований */ WM_SCROLL_STATE ScrollState; WM_GetScrollState(ScrollBar_Modbus, &ScrollState); int y_hWinSrc = _y_cbPickup_Modbus + WM_GetWindowOrgY(pMsg->hWinSrc); int y_hWin = WM_GetWindowOrgY(pMsg->hWin); int y_tmp = y_hWinSrc - y_hWin; int v_scroll; v_scroll = y_tmp/ScrollState.PageSize; v_scroll *= ScrollState.PageSize; if (_y_cbPickup_Modbus != v_scroll) { int dy = _y_cbPickup_Modbus - v_scroll; for (unsigned int i = 0; i < MAX_NUMBER_ITEMS_MODBUS; i++) { WM_MoveWindow(*(Modbus_t + i), 0, dy); WM_MoveWindow(*(Modbus_v + i), 0, dy); } WM_MoveWindow(Modbus_d, 0, dy); } _y_cbPickup_Modbus = v_scroll; focus_Modbus_settings = hObjSrc; SCROLLBAR_SetValue(ScrollBar_Modbus, v_scroll); } break; } case WM_NOTIFICATION_VALUE_CHANGED: { if ( (Id == ID_MODBUS_ADDRESS_VALUE) || (Id == ID_MODBUS_TIMEOUT_VALUE) ) { float value = EDIT_GetFloatValue(hObjSrc); int min = 0, max = 0, value_int; unsigned int changer_was_made = false; switch (Id) { case ID_MODBUS_ADDRESS_VALUE: { min = KOEF_ADDRESS_MIN; max = KOEF_ADDRESS_MAX; value_int = (int)(value); if ( (current_ekran.edition != 0) && (edit_settings_1.RS_comm_addres != value_int) ) { edit_settings_1.RS_comm_addres = value_int; changer_was_made = true; } break; } case ID_MODBUS_TIMEOUT_VALUE: { min = VALUE_TIME_OUT_1_INTERFACE_MIN; max = VALUE_TIME_OUT_1_INTERFACE_MAX; value_int = (int)(round(value*10.0f)); if ( (current_ekran.edition != 0) && (edit_settings_1.chTimeOut_RS != value_int) ) { edit_settings_1.chTimeOut_RS = value_int; changer_was_made = true; } break; } default: break; } if ( (changer_was_made == true) && (current_ekran.edition == 1) ) { //Помічаємо, що дані змінені char title[256]; title[0] = '\0'; strcat_mal(title, (char *)Modbus_panel_title.ptitle[sel_language]); strcat_mal(title, (char *)MODE.ptitle[sel_language]); strcat_mal(title, "*"); FRAMEWIN_SetText(Modbus_FrameWin, title); current_ekran.edition = 2; } __info_data info_data; EDIT_GetUserData(hObjSrc, &info_data, sizeof(__info_data)); if ((info_data.extra_param & FLAG_SIGNED_FATA) != 0) value_int = abs(value_int); if ((value_int >= min) && (value_int <= max)) { EDIT_SetTextColor(hObjSrc, EDIT_CI_DISABLED, GUI_BLACK); EDIT_SetTextColor(hObjSrc, EDIT_CI_ENABLED, GUI_BLACK); } else { EDIT_SetTextColor(hObjSrc, EDIT_CI_DISABLED, GUI_RED); EDIT_SetTextColor(hObjSrc, EDIT_CI_ENABLED, GUI_RED); } } break; } } break; } // case WM_PAINT: // { // // break; // } default: { WM_DefaultProc(pMsg); break; } } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE *pMsg) { WM_HWIN hItem; WM_HWIN const hEdit = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0); int NCode; int Id; float fre; int tab = 0; static int ratio[] = { 1, 1000, 1000000}; static const char *sel[] = {"Hz", "kHz", "MHz"}; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_PAINT: WM_SetFocus(hEdit); break; case WM_INIT_DIALOG: // // Initialization of 'MeasureSet' // hItem = pMsg->hWin; FRAMEWIN_SetText(hItem, "Set Frequency"); FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER); // // Initialization of 'Edit' // hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0); EDIT_SetText(hItem, ""); EDIT_SetFont(hItem, GUI_FONT_20B_1); EDIT_SetTextAlign(hItem, GUI_TA_RIGHT | GUI_TA_VCENTER); fre = ptrDDS->GetFrequency(); while(fre > 999.99) { fre /= 1000; tab++; } EDIT_SetFloatMode(hItem, fre, 0.00, 999.99, 2, GUI_EDIT_NORMAL); // // Initialization of 'Button' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0); BUTTON_SetFont(hItem, GUI_FONT_16_1); BUTTON_SetText(hItem, "Set"); // // Initialization of 'Radio' // hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_0); RADIO_SetFont(hItem, GUI_FONT_20_1); RADIO_SetText(hItem, sel[0], 0); RADIO_SetText(hItem, sel[1], 1); RADIO_SetText(hItem, sel[2], 2); RADIO_SetValue(hItem, tab); // // Initialization of 'Button' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1); BUTTON_SetFont(hItem, GUI_FONT_16_1); BUTTON_SetText(hItem, "Cancel"); // // Initialization of 'btn1' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2); BUTTON_SetText(hItem, "1"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn2' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_3); BUTTON_SetText(hItem, "2"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn3' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_4); BUTTON_SetText(hItem, "3"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn4' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_5); BUTTON_SetText(hItem, "4"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn5' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_6); BUTTON_SetText(hItem, "5"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn6' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_7); BUTTON_SetText(hItem, "6"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn7' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_8); BUTTON_SetText(hItem, "7"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn8' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_9); BUTTON_SetText(hItem, "8"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn9' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_10); BUTTON_SetText(hItem, "9"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btn0' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_11); BUTTON_SetText(hItem, "0"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btnBS' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_12); BUTTON_SetText(hItem, "<--"); BUTTON_SetFocussable(hItem, 0); // // Initialization of 'btnC' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_13); BUTTON_SetText(hItem, "-->"); BUTTON_SetFocussable(hItem, 0); // USER START (Optionally insert additional code for further widget initialization) // USER END break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_EDIT_0: // Notifications sent by 'Edit' 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_VALUE_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_0: // Notifications sent by 'Button' 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) fre = EDIT_GetFloatValue(hEdit); tab = RADIO_GetValue(WM_GetDialogItem(pMsg->hWin, ID_RADIO_0)); ptrDDS->SetFrequency(fre * ratio[tab]); GUI_EndDialog(pMsg->hWin, 0); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_RADIO_0: // Notifications sent by 'Radio' 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_VALUE_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 'Button' 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) GUI_EndDialog(pMsg->hWin, 0); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_2: // Notifications sent by 'btn1' 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) EDIT_AddKey(hEdit, '1'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_3: // Notifications sent by 'btn2' 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) EDIT_AddKey(hEdit, '2'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_4: // Notifications sent by 'btn3' 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) EDIT_AddKey(hEdit, '3'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_5: // Notifications sent by 'btn4' 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) EDIT_AddKey(hEdit, '4'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_6: // Notifications sent by 'btn5' 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) EDIT_AddKey(hEdit, '5'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_7: // Notifications sent by 'btn6' 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) EDIT_AddKey(hEdit, '6'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_8: // Notifications sent by 'btn7' 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) EDIT_AddKey(hEdit, '7'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_9: // Notifications sent by 'btn8' 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) EDIT_AddKey(hEdit, '8'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_10: // Notifications sent by 'btn9' 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) EDIT_AddKey(hEdit, '9'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_11: // Notifications sent by 'btn0' 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) EDIT_AddKey(hEdit, '0'); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_12: // Notifications sent by 'btnBS' 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) EDIT_AddKey(hEdit, GUI_KEY_LEFT); // USER END break; // USER START (Optionally insert additional code for further notification handling) // USER END } break; case ID_BUTTON_13: // Notifications sent by 'btnC' 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) EDIT_AddKey(hEdit, GUI_KEY_RIGHT); // 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; } }