硬汉嵌入式论坛

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

[emWin] LISTVIEW运行出错!!!

[复制链接]

13

主题

44

回帖

23

积分

初级会员

积分
23
发表于 2014-8-26 10:36:03 | 显示全部楼层 |阅读模式
如图就加了LISTVIEW控件!!!
QQ截图20140826103446.png
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 10:43:49 | 显示全部楼层
就只加了一个控件!!!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-26 10:51:28 | 显示全部楼层
这个uGUIBulder4.0有bug,并不是很好用,设计界面还行,如果要运行的话,最好还是用官方的模拟器。
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 10:54:39 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个uGUIBulder4.0有bug,并不是很好用,设计界面还行,如果要运行的话,最好还是用官方的模拟器。 (2014-08-26 10:51) 
下到单片机上了死机了
tatic const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
    { FRAMEWIN_CreateIndirect,  "Caption",           0,                       0,  0,  800,480,FRAMEWIN_CF_MOVEABLE,0},
    { LISTVIEW_CreateIndirect,   NULL,               GUI_ID_LISTVIEW0,        269,208,165,92, 0,0}
};



/*****************************************************************
**      FunctionName:void PaintDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_PAINT
*****************************************************************/

void PaintDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;

}



/*****************************************************************
**      FunctionName:void InitDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_INIT_DIALOG
*****************************************************************/

void InitDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    //
    //FRAMEWIN
    //
    FRAMEWIN_SetClientColor(hWin,0x000000);
    FRAMEWIN_SetTitleVis(hWin,0);
    //
    //GUI_ID_LISTVIEW0
    //
    LISTBOX_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_LISTVIEW0),0,0xffffff);
    //LISTVIEW_SetAutoScrollH(WM_GetDialogItem(hWin,GUI_ID_LISTVIEW0),1);
    //LISTVIEW_SetAutoScrollV(WM_GetDialogItem(hWin,GUI_ID_LISTVIEW0),1);
    LISTVIEW_AddColumn(WM_GetDialogItem(hWin,GUI_ID_LISTVIEW0),60,"ColumnHeader",GUI_TA_VCENTER|GUI_TA_LEFT);

}




/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbCallback(WM_MESSAGE * pMsg)
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId)
    {
        case WM_PAINT:
            PaintDialog(pMsg);
            break;
        case WM_INIT_DIALOG:
            InitDialog(pMsg);
            break;
        case WM_KEY:
            switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
            {
                case GUI_KEY_ESCAPE:
                    GUI_EndDialog(hWin, 1);
                    break;
                case GUI_KEY_ENTER:
                    GUI_EndDialog(hWin, 0);
                    break;
            }
            break;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc);
            NCode = pMsg->Data.v;        
            switch (Id)
            {
                case GUI_ID_OK:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);
                    break;
                case GUI_ID_CANCEL:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);
                    break;

            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}


void MyGUI_Init(void)
{
    WM_SetDesktopColor(GUI_BLACK);      /* Automacally update desktop window */
//    GUI_Clear();
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-26 11:05:27 | 显示全部楼层
void MyGUI_Init(void)
{
    WM_SetDesktopColor(GUI_BLACK);      /* Automacally update desktop window */
//    GUI_Clear();
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
   //这里加上如下内容
   while(1)
   {
      GUI_Delay(10);
  }
}
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 11:26:46 | 显示全部楼层

回 eric2013 的帖子

eric2013:void MyGUI_Init(void)
{
    WM_SetDesktopColor(GUI_BLACK);      /* Automacally update desktop window */
//    GUI_Clear();
    WM_SetCreateFlags(WM_CF_MEMDEV); &nbs .. (2014-08-26 11:05) 
可是没有用OS怎么办??
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-26 11:29:29 | 显示全部楼层

回 mr.boy 的帖子

mr.boy:可是没有用OS怎么办?? (2014-08-26 11:26) 
没有OS的话,这个函数也可以这么用,或者定期调用GUI_Exec()进行刷新
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 11:33:01 | 显示全部楼层

回 eric2013 的帖子

eric2013:没有OS的话,这个函数也可以这么用,或者定期调用GUI_Exec()进行刷新 (2014-08-26 11:29) 
void systick1ms_gui_stm32(system_typedef *sys)
{
    if(Real_Para_Interface_Display_Tick >= 1000)
    {
        Real_Para_Interface_Display_Tick = 0;
        Real_Para_Interface_Display_Flag = 1;
    }
    else
    {
        Real_Para_Interface_Display_Tick++;
    }
   
    if(Ticks_WM_Exec >= 10)
    {
        Ticks_WM_Exec = 0;
       WM_Exec();
    }
    else
    {
        Ticks_WM_Exec++;
    }
}
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 11:33:41 | 显示全部楼层

回 mr.boy 的帖子

mr.boy:void systick1ms_gui_stm32(system_typedef *sys)
{
    if(Real_Para_Interface_Display_Tick >= 1000)
    {
....... (2014-08-26 11:33) 
多长时间10MS,我调用了,不好使
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 11:34:06 | 显示全部楼层

回 eric2013 的帖子

eric2013:没有OS的话,这个函数也可以这么用,或者定期调用GUI_Exec()进行刷新 (2014-08-26 11:29) 
多长时间10MS,我调用了,不好使
回复

使用道具 举报

13

主题

44

回帖

23

积分

初级会员

积分
23
 楼主| 发表于 2014-8-26 14:42:28 | 显示全部楼层

回 eric2013 的帖子

eric2013:void MyGUI_Init(void)
{
    WM_SetDesktopColor(GUI_BLACK);      /* Automacally update desktop window */
//    GUI_Clear();
    WM_SetCreateFlags(WM_CF_MEMDEV); &nbs .. (2014-08-26 11:05) 
谢谢版主!!!找到原因了 ~显示字符每行每列对齐,下面是对的
    static const char * _lvTable_00[4] ={"" , "" , "" , "你好" };
    static const char * _lvTable_01[4] ={"" , "" , "" , "erwerwrw" };
    static const char * _lvTable_02[4] ={"" , "" , "" , "erwerwrw" };
    static const char * _lvTable_03[4] ={"" , "" , "" , "erwerwrw" };
下面是错的
    static const char * _lvTable_00[4] ={"" , "" , "" , "你好" };
    static const char * _lvTable_01[4] ={"1"  };
    static const char * _lvTable_02[4] ={"2" , };
    static const char * _lvTable_03[4] ={"3" ,  };
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-26 19:56:13 | 显示全部楼层

回 mr.boy 的帖子

mr.boy:谢谢版主!!!找到原因了 ~显示字符每行每列对齐,下面是对的
    static const char * _lvTable_00[4] ={"" , "" , "" , "你好" };
    static const char * _lvTable_01[4] ={""  .. (2014-08-26 14:42) 
恩,谢谢告知解决办法
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 22:15 , Processed in 0.320709 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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