Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как получить FRAMEWIN_Handle диалога?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
manifest
В примере ниже, функция WM_GetDialogItem(dialog, GUI_ID_HELP) записывает в переменную framewin ноль вместо значения хэндела framewin`а. При этом аналогичная функция, вызываемая для кнопки отрабатывает нормально. Как можно получить хэндел на FRAMEWIN диалога?

Код
extern "C" void MainTask(void)
{
  GUI_Init();

  GUI_WIDGET_CREATE_INFO createInfo[] =
  {
    {FRAMEWIN_CreateIndirect, "Dialog", GUI_ID_HELP, 0, 0, 128, 64},
    {BUTTON_CreateIndirect, "OK", GUI_ID_OK, 80, 30, 40, 15}
  };

  WM_HMEM dialog = GUI_CreateDialogBox(createInfo, GUI_COUNTOF(createInfo), 0, 0, 0, 0);
  
  FRAMEWIN_Handle framewin = WM_GetDialogItem(dialog, GUI_ID_HELP);
  BUTTON_Handle button = WM_GetDialogItem(dialog, GUI_ID_OK);

  FRAMEWIN_SetText(framewin, "2222");
  BUTTON_SetText(button, "1111");

  while(1)
  {
    WM_Exec();
  }
}
manifest
Решение следующее: dialog handle = framewin handle

Код
extern "C" void MainTask(void)
{
  GUI_Init();

  GUI_WIDGET_CREATE_INFO createInfo[] =
  {
    {FRAMEWIN_CreateIndirect, "Dialog", GUI_ID_HELP, 0, 0, 128, 64},
    {BUTTON_CreateIndirect, "OK", GUI_ID_OK, 80, 30, 40, 15}
  };

  WM_HMEM dialog = GUI_CreateDialogBox(createInfo, GUI_COUNTOF(createInfo), 0, 0, 0, 0);
  BUTTON_Handle button = WM_GetDialogItem(dialog, GUI_ID_OK);

  FRAMEWIN_SetText(dialog, "2222");
  BUTTON_SetText(button, "1111");

  while(1)
  {
    WM_Exec();
  }
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.