|

楼主 |
发表于 2023-8-22 15:40:56
|
显示全部楼层
请问下为什么我选中复选框后,不能隐藏和显示曲线
static void _cbDialog2(WM_MESSAGE* pMsg) {
WM_HWIN hItem;
GRAPH_SCALE_Handle hScaleV;
int NCode;
int Id;
flag=2;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
//
/*Framewin*/
hItem = pMsg->hWin;
FRAMEWIN_SetText(hItem, "CAN Analyzer");
FRAMEWIN_SetFont(hItem, GUI_FONT_20_1);
//
//BUTTON
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetText(hItem, "Screen1");
//
/* Checkbox1 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0);
CHECKBOX_SetText(hItem, "");
CHECKBOX_SetFont(hItem, GUI_FONT_20_ASCII);
/* Checkbox2 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_1);
CHECKBOX_SetText(hItem, "");
CHECKBOX_SetFont(hItem, GUI_FONT_20_ASCII);
/* Checkbox3 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_2);
CHECKBOX_SetText(hItem, "");
CHECKBOX_SetFont(hItem, GUI_FONT_20_ASCII);
/* Checkbox4 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_3);
CHECKBOX_SetText(hItem, "");
CHECKBOX_SetFont(hItem, GUI_FONT_20_ASCII);
/* Button0 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetFont(hItem, GUI_FONT_20B_1);
/* Text0 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
TEXT_SetFont(hItem, GUI_FONT_20_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
TEXT_SetText(hItem, "CURRENT");
/* Text1 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
TEXT_SetFont(hItem, GUI_FONT_20_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
TEXT_SetText(hItem, "POWER");
/* Text2 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
TEXT_SetFont(hItem, GUI_FONT_20_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
TEXT_SetText(hItem, "RPM");
/* Text3 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_3);
TEXT_SetFont(hItem, GUI_FONT_20_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
TEXT_SetText(hItem, "TORQUE");
/* Edit0 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
EDIT_SetText(hItem, " ");
EDIT_SetMaxLen(hEdit, 10);
WM_SetFocus(hEdit);
/* Edit1 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
EDIT_SetText(hItem, " ");
EDIT_SetMaxLen(hEdit, 10);
WM_SetFocus(hEdit);
/* Edit2 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_2);
EDIT_SetText(hItem, " ");
EDIT_SetMaxLen(hEdit, 10);
WM_SetFocus(hEdit);
/* Edit3 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_3);
EDIT_SetText(hItem, " ");
EDIT_SetMaxLen(hEdit, 10);
WM_SetFocus(hEdit);
/* downdrop1 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_DROPDOWN_0);
DROPDOWN_SetListHeight(hItem, 100);
DROPDOWN_SetFont(hItem, GUI_FONT_24B_1);
DROPDOWN_AddString(hItem, "0x53f");
DROPDOWN_AddString(hItem, "0x33f");
DROPDOWN_AddString(hItem, "0x58f");
DROPDOWN_AddString(hItem, "0x18EF1220");//126电机扭矩
DROPDOWN_AddString(hItem, "0x18EF1020");//126电机转速、电流
DROPDOWN_SetAutoScroll(hItem, 1);
DROPDOWN_SetScrollbarWidth(hItem, 20);
/* Graph*/
hItem = WM_GetDialogItem(pMsg->hWin, ID_GRAPH_0);
GRAPH_SetColor(hItem, GUI_WHITE, GRAPH_CI_BK);
GRAPH_SetColor(hItem, GUI_BLACK, GRAPH_CI_GRID);
GRAPH_SetBorder(hItem, 30, 30, 10, 10);
GRAPH_SetGridDistX(hItem, 50);
GRAPH_SetGridDistY(hItem, 50);
GRAPH_SetLineStyleH(hItem, GUI_LS_DOT);
GRAPH_SetLineStyleV(hItem, GUI_LS_DOT);
GRAPH_SetGridVis(hItem, 1);
hScaleV = GRAPH_SCALE_Create(15, GUI_TA_HCENTER | GUI_TA_LEFT,
GRAPH_SCALE_CF_HORIZONTAL, 60);
GRAPH_AttachScale(hItem, hScaleV);
GRAPH_SCALE_SetFactor(hScaleV, 0.1);
/* 创建垂直刻度对象 */
hScaleV = GRAPH_SCALE_Create(15, GUI_TA_HCENTER | GUI_TA_LEFT,
GRAPH_SCALE_CF_VERTICAL, 20);
GRAPH_AttachScale(hItem, hScaleV);
GRAPH_SCALE_SetFactor(hScaleV, 0.1);
// 创建数据对象
hDataSpeed = GRAPH_DATA_YT_Create(GUI_RED, 700, NULL, 0);
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id) {
case ID_CHECKBOX_0: //选中则显示曲线,否则隐藏
if (NCode == WM_NOTIFICATION_VALUE_CHANGED) {
if (CHECKBOX_IsChecked(WM_GetDialogItem(pMsg->hWin, ID_CHECKBOX_0))) {
GRAPH_AttachData(hGraph, hDataSpeed);//在控件添加数据对象
}
else {
GRAPH_DetachData(hGraph, hDataSpeed);//从控件分离数据对象
}
}
break;
case ID_BUTTON_0:
switch (NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
GUI_EndDialog(pMsg->hWin, 0);
GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), _cbDialog1, WM_HBKWIN, 0, 0);
break;
}
break;
switch (NCode) {
case WM_NOTIFICATION_CLICKED:
break;
}
break;
switch (NCode) {
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_VALUE_CHANGED:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
static WM_HWIN CreateFramewin1(void) {
WM_HWIN hWin;
hWin = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), _cbDialog2, WM_HBKWIN, 0, 0);
return hWin;
}
/**
* @brief 以对话框方式间接创建控件
* @retval hWin:资源表中第一个控件的句柄
*/
void MainTask(void) {
int i;
WM_HWIN hWin;
#if GUI_SUPPORT_MEMDEV
WM_SetCreateFlags(WM_CF_MEMDEV);
#endif
if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) {
GUI_ErrorOut("内存不足");
return;
}
GUI_Init();
FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
CreateFramewin1();
while (1) {
hWin=WM_GetActiveWindow();
if(flag==2){
for(i = 0; i < 50; i++)
GRAPH_DATA_YT_AddValue(hDataSpeed, GraphValue);
};
GUI_Delay(30);
}
}
|
|