|
运行如下程序时,程序进入MemManage_Handler,进入MemManage_Handler时的call stack见图片附件。有高手知道这是为什么吗?以前没遇到类似问题...查了一天不知道为什么。
#include "DIALOG.h"
#define ID_WINDOWS_0 (GUI_ID_USER + 0x00)
#define ID_BUTTON (GUI_ID_USER + 0x01)
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "Windows", ID_WINDOWS_0, 0, 0, 1024, 600, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "", ID_BUTTON, 200, 200, 80, 50, 0, 0x0, 0 },
};
static void _cbDialogMainUI(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
int NCode;
int Id;
char buf[50] = {0};
static int cnt = 0;
switch (pMsg->MsgId)
{
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON);
BUTTON_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
BUTTON_SetTextColor(hItem,BUTTON_BI_PRESSED,GUI_BLACK);
BUTTON_SetTextColor(hItem,BUTTON_BI_UNPRESSED,GUI_BLACK);
BUTTON_SetFont(hItem, GUI_FONT_32B_ASCII);
BUTTON_SetText(hItem, "Click me");
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch(Id){
case ID_BUTTON:
if(NCode == WM_NOTIFICATION_RELEASED){
sprintf(buf, "Click me %d",++cnt);
BUTTON_SetText(WM_GetDialogItem(pMsg->hWin, ID_BUTTON), buf);
}
break;
}
break;
}
}
void mainInterface(void)
{
//设置窗口背景色为黑
WINDOW_SetDefaultBkColor(GUI_BLACK);
GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialogMainUI, WM_HBKWIN, 0, 0);
while(1){
GUI_Delay(50);
}
}
|
-
|