|

楼主 |
发表于 2022-8-25 13:47:32
|
显示全部楼层
我更换了另一个控件来实现,分配40*1024动态内存,只显示这个界面的时候,切换一次就会卡死,是什么原因呢。
代码如下:
static void _cbDialog_Sys(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 'System'
//
hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, GUI_MAKE_COLOR(0x00000000));
//
// Initialization of 'SYSTEM'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_13);
TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
TEXT_SetFont(hItem, GUI_FONT_13B_1);
//
// Initialization of 'Listbox'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
LISTBOX_AddString(hItem, "KEY >");
LISTBOX_AddString(hItem, "SENS >");
LISTBOX_AddString(hItem, "CPOS >");
LISTBOX_AddString(hItem, "SORT >");
LISTBOX_AddString(hItem, "VLIM >");
LISTBOX_AddString(hItem, "ILIM >");
LISTBOX_AddString(hItem, "PLIM >");
LISTBOX_AddString(hItem, "FMAT >");
LISTBOX_SetBkColor(hItem, LISTBOX_CI_UNSEL,GUI_BLACK);
LISTBOX_SetBkColor(hItem, LISTBOX_CI_SELFOCUS, GUI_WHITE);
LISTBOX_SetBkColor(hItem, LISTBOX_CI_SEL, GUI_BLACK);
LISTBOX_SetTextColor(hItem, LISTBOX_CI_UNSEL, GUI_WHITE);
LISTBOX_SetTextColor(hItem, LISTBOX_CI_SELFOCUS, GUI_BLACK);
LISTBOX_SetTextColor(hItem, LISTBOX_CI_SEL, GUI_WHITE);
//
// Initialization of 'KEY'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);
CHECKBOX_SetText(hItem, "ON");
CHECKBOX_SetTextColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
WM_HideWindow(hItem);
//
// Initialization of 'SENS'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_RADIO_0);
RADIO_SetTextColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
RADIO_SetText(hItem, "ON", 0);
RADIO_SetText(hItem, "OFF", 1);
RADIO_SetText(hItem, "AUTO", 2);
WM_HideWindow(hItem);
//
// Initialization of 'SAVE'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetSkinClassic(hItem);
BUTTON_SetFont(hItem, GUI_FONT_8_1);
BUTTON_SetFocusColor(hItem, GUI_WHITE);
BUTTON_SetTextColor(hItem, BUTTON_CI_UNPRESSED, GUI_WHITE);
BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK);
//
// Initialization of 'QUIT'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
BUTTON_SetSkinClassic(hItem);
BUTTON_SetFont(hItem, GUI_FONT_8_1);
BUTTON_SetFocusColor(hItem, GUI_WHITE);
BUTTON_SetTextColor(hItem, BUTTON_CI_UNPRESSED, GUI_WHITE);
BUTTON_SetBkColor(hItem, BUTTON_CI_UNPRESSED, GUI_BLACK);
//
// Initialization of 'CPOS'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
EDIT_SetText(hItem, "00");
EDIT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
EDIT_SetTextColor(hItem, EDIT_CI_ENABLED, GUI_MAKE_COLOR(0x00000000));
// WM_HideWindow(hItem);
//
// Initialization of 'CPOS_Text'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_14);
TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
TEXT_SetText(hItem, "0-10V");
// WM_HideWindow(hItem);
// 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_LISTBOX_0: // Notifications sent by 'Listbox'
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)
switch (LISTBOX_GetSel(pMsg->hWinSrc))
{
case 0:
WM_ShowWindow(WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_RADIO_0));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_EDIT_3));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_TEXT_14));
break;
case 1:
WM_ShowWindow(WM_GetDialogItem(pMsg->hWin, ID_RADIO_0));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_EDIT_3));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_TEXT_14));
break;
case 2:
WM_ShowWindow(WM_GetDialogItem(pMsg->hWin, ID_EDIT_3));
WM_ShowWindow(WM_GetDialogItem(pMsg->hWin, ID_TEXT_14));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_RADIO_0));
WM_HideWindow(WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0));
break;
}
// USER END
break;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
case ID_CHECKBOX_0: // Notifications sent by 'KEY'
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_RADIO_0: // Notifications sent by 'SENS'
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 'SAVE'
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;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
case ID_BUTTON_1: // Notifications sent by 'QUIT'
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;
// USER START (Optionally insert additional code for further notification handling)
// USER END
}
break;
case ID_EDIT_3: // Notifications sent by 'CPOS'
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;
// 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;
}
} |
|