OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3494|回复: 2

emwin中的case语句后面为什么加上if之类的判断语句就黑屏呢?

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-7-10
在线时间
8 小时
发表于 2017-7-25 15:59:24 | 显示全部楼层 |阅读模式
2金钱

      case WM_NOTIFICATION_VALUE_CHANGED:
                       
                        Value = SPINBOX_GetValue(pMsg->hWinSrc);       
                        if(Value<40)        {dacval = (0.0045*Value+ 0.5217)*1250;        LED0=!LED0;}
                        else                                 {dacval = (0.0036*Value+ 0.5381)*1250;        LED1=!LED1;}
//                        dacval=Value<40?(        (0.0045*Value+ 0.5217)*1250)                (0.0036*Value+ 0.5381)*1250);
                        temp=(float)dacval/1250.0;
                        DAC_SetChannel1Data(DAC_Align_12b_R, dacval);DAC_SetChannel2Data(DAC_Align_12b_R, dacval);
                        sprintf(dacvalue_buf,"%.4fV  ",temp);
                        TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
                        TEXT_SetFont(hItem, GUI_FONT_24_1);
                        TEXT_SetText(WM_GetDialogItem(hWin,ID_TEXT_3), dacvalue_buf);         //μ&#231;&#209;1text
                        break;


用if语句不行,后面试了一下问号表达式还是不行,但是不用判断语句就能很好的显示,怎么回事呀

最佳答案

查看完整内容[请看2#楼]

对照了几个例程总算找到差别了,要在上一个switch和case之间加一句 hItem =WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_0); 这是为啥呢,再研究一下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-7-10
在线时间
8 小时
 楼主| 发表于 2017-7-25 15:59:25 | 显示全部楼层
对照了几个例程总算找到差别了,要在上一个switch和case之间加一句 hItem =WM_GetDialogItem(pMsg->hWin, ID_SPINBOX_0);

这是为啥呢,再研究一下
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2017-7-10
在线时间
8 小时
 楼主| 发表于 2017-7-25 16:56:39 | 显示全部楼层
看了一下f4的软键盘例程,感觉是一样的用法呀


[mw_shl_code=c,true]                        IsPressed = BUTTON_IsPressed(pDrawItemInfo->hWin);         //&#197;D&#182;&#207;ê&#199;·&#241;°′&#197;¥ê&#199;·&#241;±&#187;°′&#207;&#194;
                        xSize     = WM_GetWindowSizeX(pDrawItemInfo->hWin);        //&#187;&#241;è&#161;°′&#197;¥D&#161;1¤&#190;&#223;μ&#196;X′óD&#161;
                        ySize     = WM_GetWindowSizeY(pDrawItemInfo->hWin);        //&#187;&#241;è&#161;°′&#197;¥D&#161;1¤&#190;&#223;μ&#196;Y′óD&#161;
                        if (IsPressed)                                                                                 //è&#231;1&#251;°′&#197;¥±&#187;°′&#207;&#194;
                        {
                GUI_DrawGradientV(0,0,xSize-1,ySize-1,BUTTON_COLOR2,BUTTON_COLOR3);
                        }
                        else
                        {
                GUI_DrawGradientV(0,0,xSize-1,ySize-1,GUI_WHITE,GUI_WHITE);
                        }
                        GUI_SetColor(COLOR_BORDER);[/mw_shl_code]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表