label_demo1.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include <rtthread.h>
  2. #include <rtgui/rtgui.h>
  3. #include <rtgui/rtgui_app.h>
  4. #include <rtgui/widgets/window.h>
  5. #include <rtgui/widgets/label.h>
  6. #include <rtgui/driver.h>
  7. /* 在LCD上创建一个主窗口,这是第一个窗口 */
  8. static void win_thread_entry(void *parameter)
  9. {
  10. struct rtgui_app *app;
  11. struct rtgui_win *win;
  12. struct rtgui_label *label;
  13. struct rtgui_rect rect;
  14. app = rtgui_app_create(rt_thread_self(), "MyApp");
  15. RT_ASSERT(app != RT_NULL);
  16. /* create a full screen window */
  17. rtgui_graphic_driver_get_rect(rtgui_graphic_driver_get_default(), &rect);
  18. win = rtgui_win_create(RT_NULL, "MainWin", &rect,
  19. RTGUI_WIN_STYLE_NO_BORDER | RTGUI_WIN_STYLE_NO_TITLE);
  20. if (win == RT_NULL)
  21. {
  22. rtgui_app_destroy(app);
  23. return;
  24. }
  25. /* 建立一个label,内容为helloworld */
  26. label = rtgui_label_create("Hello World!");
  27. /* 设置label的位置,这里是绝对坐标 */
  28. rect.x1 = 0;
  29. rect.y1 = 100;
  30. rect.x2 = 240;
  31. rect.y2 = 140;
  32. rtgui_widget_set_rect(RTGUI_WIDGET(label), &rect);
  33. rt_kprintf("bc: %x\n", RTGUI_WIDGET_BACKGROUND(label));
  34. rt_kprintf("fc: %x\n", RTGUI_WIDGET_FOREGROUND(label));
  35. #if 0
  36. RTGUI_WIDGET_BACKGROUND(label) = 0;
  37. RTGUI_WIDGET_FOREGROUND(label) = RTGUI_RGB(0xFF, 0xFF, 0);
  38. #endif
  39. /*添加label到主窗口*/
  40. rtgui_container_add_child(RTGUI_CONTAINER(win), RTGUI_WIDGET(label));
  41. /* 显示主窗口 */
  42. rtgui_win_show(win, RT_FALSE);
  43. /* 循环 */
  44. rtgui_app_run(app);
  45. rtgui_win_destroy(win);
  46. rtgui_app_destroy(app);
  47. rt_kprintf("MyApp Quit.\n");
  48. }
  49. int main()
  50. {
  51. rt_thread_t tid;
  52. tid = rt_thread_create("win", win_thread_entry, RT_NULL,
  53. 2048, 20, 20);
  54. if (tid != RT_NULL)
  55. {
  56. rt_thread_startup(tid);
  57. }
  58. return 0;
  59. }