硬汉嵌入式论坛

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

[emWin] EMWIN listbox背景透明后有一道黑线去不掉 怎么回事?

[复制链接]

4

主题

27

回帖

164

积分

初级会员

积分
164
发表于 2018-4-25 08:45:37 | 显示全部楼层 |阅读模式
本帖最后由 杜杜_C1WY7 于 2018-4-25 11:09 编辑

代码如下
#include "DIALOG.h"
#include "MainMenuBK.h"
/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_WINDOW_0 (GUI_ID_USER + 0x02)
#define ID_TEXT_0 (GUI_ID_USER + 0x03)
#define ID_LISTBOX_0 (GUI_ID_USER + 0x04)


// USER START (Optionally insert additional defines)
// USER END

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

// USER START (Optionally insert additional static data)
// USER END

/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { WINDOW_CreateIndirect, "MainMenu", ID_WINDOW_0, 0, 0, 480, 320, 0, 0x0, 0 },
  { TEXT_CreateIndirect, "Text", ID_TEXT_0, 0, 0, 480, 31, 0, 0x64, 0 },
  { LISTBOX_CreateIndirect, "Listbox", ID_LISTBOX_0, -1, 30, 482, 290, 0, 0x0, 0 },
  // USER START (Optionally insert additional widgets)
  // USER END
};

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
  GUI_BITMAP         Bitmap_Background={480,320,960,16,gImage_MainMenuBK,NULL,GUI_DRAW_BMP565};

// USER START (Optionally insert additional static code)
// USER END

/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int     NCode;
  int     Id;
  int sel=1;
  GUI_LOGPALETTE      Palette1;/*565*/
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'MainMenu'
    //
    GUI_EnableAlpha(1);
    hItem = pMsg->hWin;

    //
    // Initialization of 'Text'
    //

    hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
    WM_SetHasTrans(hItem);
    TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(0x00000000));
    TEXT_SetText(hItem, "Menu");
    TEXT_SetFont(hItem, GUI_FONT_32_1);
    TEXT_SetBkColor  (hItem, 0xFF000000);
    TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    //
    // Initialization of 'Listbox'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
    WM_SetHasTrans(hItem);
    LISTBOX_AddString(hItem, "Item 0");
    LISTBOX_AddString(hItem, "Item 1");
    LISTBOX_AddString(hItem, "Item 2");
    LISTBOX_AddString(hItem, "Item 3");
    LISTBOX_AddString(hItem, "Item 4");
    LISTBOX_AddString(hItem, "Item 5");
    LISTBOX_AddString(hItem, "Item 6");
    LISTBOX_AddString(hItem, "Item 7");
    LISTBOX_AddString(hItem, "Item 8");
    LISTBOX_AddString(hItem, "Item 9");
    LISTBOX_SetFont(hItem, GUI_FONT_32_1);
    LISTBOX_SetSel(hItem, sel);
    LISTBOX_SetTextColor(hItem, LISTBOX_CI_UNSEL, GUI_MAKE_COLOR(0x00FFFFFF));
    LISTBOX_SetBkColor(hItem, LISTBOX_CI_UNSEL, 0xFF000000);

    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
    case WM_PAINT:
    GUI_DrawBitmap(&Bitmap_Background, 0, 0);
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id) {
    case ID_LISTBOX_0: // Notifications sent by 'Listbox'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_SEL_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    // USER START (Optionally insert additional code for further Ids)
    // USER END
    }
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       CreateMainMenu
*/
WM_HWIN CreateMainMenu(void);
WM_HWIN CreateMainMenu(void) {
  WM_HWIN hWin;
//  
//  GUI_DrawBitmap(&Bitmap_Background, 0, 0);
  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  return hWin;}

// USER START (Optionally insert additional public code)
// USER END
QQ图片20180425110408.jpg


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-25 10:18:24 | 显示全部楼层
使用有误,case WM_INIT_DIALOG里面不能调用GUI_EnableAlpha(1),你要在WM_PAINT消息里面调用。
回复

使用道具 举报

4

主题

27

回帖

164

积分

初级会员

积分
164
 楼主| 发表于 2018-4-25 11:10:56 | 显示全部楼层
eric2013 发表于 2018-4-25 10:18
使用有误,case WM_INIT_DIALOG里面不能调用GUI_EnableAlpha(1),你要在WM_PAINT消息里面调用。

改了   然后Menu下面那道线依然存在
感觉像是Listbox的边框
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-25 11:30:44 | 显示全部楼层
杜杜_C1WY7 发表于 2018-4-25 11:10
改了   然后Menu下面那道线依然存在
感觉像是Listbox的边框

listbox显示小点就看出来是不是边框了。
回复

使用道具 举报

4

主题

27

回帖

164

积分

初级会员

积分
164
 楼主| 发表于 2018-4-25 23:07:20 | 显示全部楼层
eric2013 发表于 2018-4-25 11:30
listbox显示小点就看出来是不是边框了。

确实是边框 这个可以去掉么?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-4-26 01:08:04 | 显示全部楼层
杜杜_C1WY7 发表于 2018-4-25 23:07
确实是边框 这个可以去掉么?

这个去不掉。用listbox的自定义回调函数的话,有点麻烦。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 17:33 , Processed in 0.042443 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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