STM32F407基于EmWin(EDIT+BUTTON控件)的计算器

前言:

最终程序、参考资料打包文件百度网盘连接:链接:https://pan.baidu.com/s/1KcoKvkoaZSWS4JyBlfTOCg  提取码:14mz

由于后面有点小懒,计算部分引用了另一篇文章的程序(原链接:https://blog.csdn.net/u014751607/article/details/72722629),由于程序结构不同,有少许修改。

核心解决问题:按下Button按键后对应的数值在EDIT控件中显示(这里卡了很久,网上的资料仿佛都没说过这个问题)

解决方法:在背景窗口回调函数switch函数判断前调用:hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);

static void _cbDialog0(WM_MESSAGE * pMsg) 
{
  int     NCode;
  int     Id;
  hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);//非常重要,如果没有前面这句话EDIT控件中显示无法改变
 switch (pMsg->MsgId) 
    {
        ......
    }
}

一.所需C程序的说明:

  1. strcat函数:strcat函数可用于将两个char类型变量连接,在调用该函数时需要包含头文件"string.h"。
  2. strcpy函数:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间,在调用该函数前需要包含头文件"string.h"。

  3. atof函数:其功能是把字符串转换成浮点数,需要调用头文件<stdlib.h>。这3个函数作为计算部分数据处理关键,部分代码如下:

    strcat(num1,"7"); 			
    strcpy(temp1,num1); 
    a=atof(temp1); 
  4. 浮点数取余:区域需要两边都为整数,这里通过强制转换将两个浮点数转换为整数,如浮点数a转换为整形int(a)。

 二.关键问题

基础内容可见正点原子《STM32F4 EMWIN开发手册_V3.1》:第十一章《GUIBulider的使用》、第十四章《BUTTON控件》、第十七章《EDIT控件》,没有的朋友我放的百度云盘文件夹中有。

页面切换可见以下博客,这个博主有很多EmWin的教程,而且也有代码,挺不错的。https://blog.csdn.net/neqee/article/details/53074724

 在该工程中遇到的最大问题就是EDIT控件的显示(这个问题卡了很久),在前面已经说明了,详情参见代码源程序(这里解决问题主要是参见了打包文件中KeyBoardDLG.c

文章就这样吧,有什么问题可以联系我QQ:875757903加好友备注一下,2019年1月后可能不方面联系,准备考研了,不过我看到消息会回复的)

猜你喜欢

转载自blog.csdn.net/qq_41804561/article/details/82531741