硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4696|回复: 7
收起左侧

[emWin教程入门篇] 求解:GUI_MessageBox无法执行问题

[复制链接]

12

主题

33

回帖

69

积分

初级会员

进阶stm32,那之后呢。。。。。

积分
69
发表于 2015-8-4 09:18:48 | 显示全部楼层 |阅读模式
使用官方例程,界面可用正常显示出来,触摸屏幕(点击OK按键)没有任何反应,屏幕完全卡在那里,求解决方法???
/*******************************************************************
*
*       Static code
*
********************************************************************
*/
/*********************************************************************
*
*       _cbBkWindow
*/
static void _cbBkWindow(WM_MESSAGE* pMsg) {
  switch (pMsg->MsgId) {
  case WM_PAINT:
    GUI_SetBkColor(GUI_RED);
    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font16_ASCII);
    GUI_DispStringHCenterAt("DIALOG_MessageBox - Sample", 120, 5);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       MainTask
*/
void Touch_MainTask(void) {
// GUI_Init();
    LCD_BK_EN;
  #if GUI_SUPPORT_MEMDEV
    WM_SetCreateFlags(WM_CF_MEMDEV);
  #endif
  WM_SetCallback(WM_HBKWIN, &_cbBkWindow);
  //
  // Create message box and wait until it is closed
  //
  while (1) {
    GUI_MessageBox("This text is shown\nin a message box",
                   "Caption/Title", GUI_MESSAGEBOX_CF_MOVEABLE);
    GUI_Delay(750);                    // Wait for a short moment ...
    GUI_MessageBox("New message !",
                   "Caption/Title", GUI_MESSAGEBOX_CF_MOVEABLE);
    GUI_Delay(750);
  }
}

确定触摸可用的,可以正常运行触摸屏程序:
QQ截图20150804091503.png

是在滴答定时器中断每10ms运行一次GUI_TOUCH_Exec();函数,所以个人觉得不是触摸问题。
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2015-8-4 09:43:13 | 显示全部楼层
可能需要自己写一个回调函数,响应Ok按键的消息。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107265
QQ
发表于 2015-8-4 10:24:41 | 显示全部楼层
试试创建一个阻塞式对话框看看有问题不。
回复

使用道具 举报

12

主题

33

回帖

69

积分

初级会员

进阶stm32,那之后呢。。。。。

积分
69
 楼主| 发表于 2015-8-4 11:05:48 | 显示全部楼层
最终测试结果:
把栈空间改大就好了,之前是 0x00000400
Stack_Size      EQU     0x00001000
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107265
QQ
发表于 2015-8-4 11:27:25 | 显示全部楼层

回 haohao801 的帖子

haohao801:最终测试结果:
把栈空间改大就好了,之前是 0x00000400
Stack_Size      EQU     0x00001000 (2015-08-04 11:05) 
谢谢告知解决办法。
回复

使用道具 举报

335

主题

2040

回帖

3050

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3050
发表于 2015-8-4 16:17:13 | 显示全部楼层

回 haohao801 的帖子

haohao801:最终测试结果:
把栈空间改大就好了,之前是 0x00000400
Stack_Size      EQU     0x00001000 (2015-08-04 11:05) 
能响应enter按键来关闭对话框吗?
回复

使用道具 举报

12

主题

33

回帖

69

积分

初级会员

进阶stm32,那之后呢。。。。。

积分
69
 楼主| 发表于 2015-8-4 18:02:40 | 显示全部楼层
嗯嗯,直接点击就可以关闭了
回复

使用道具 举报

5

主题

69

回帖

5

积分

初级会员

积分
5
发表于 2015-8-7 16:09:34 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:能响应enter按键来关闭对话框吗?
 (2015-08-04 16:17) 
是想用实体按键么?写个回调函数相应enter消息来结束对话框有个函数好像Enddialog来着你查下文档。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-23 17:38 , Processed in 0.314945 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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