본문 바로가기

[STM32F746G-DISCO] STemWin 사용하기 (Image widget)

by rudals.kim 2024. 7. 13. 댓글 개
반응형
아래 테스트는 STM32CubeIDE 1.6.1/STM32Cube_FW_F7_V1.16.1를 사용하여 테스트 되었습니다.


이번에는 STemWin을 사용하여 이미지 클릭시 이미지를 변경하는 테스트를 해 보았습니다.
간단히 이미지의 ON/OFF 동작으로 이해하시면 될 것 같습니다.
GUIBuilder를 사용하여 간단히 FrameWin에 ON/OFF용 Image 위젯을 하나씩 넣었습니다.

시뮬레이터를 사용하여 GUI를 먼저 확인 해 보았습니다.
이미지를 클릭할때마다 LED가 정상적으로 ON/OFF를 합니다.


새 프로젝트의 설정은 이전 게시글과 동일하게 생성하였습니다.

2024.07.06 - [Hardware/STM32] - [STM32F746G-DISCO] STemWin 사용하기 (Button widget)


이벤트 처리는 이미지 위젯의 ID의 WM_NOTIFICATION_CLICKED 이벤트를 받아서 처리를 하였습니다.
2개의 ID중 ID_IMAGE_0만 사용하고 hex로 변환된 2개의 이미지를 클릭할 때마다 번갈아 디스플레이되도록 하였습니다.

case WM_NOTIFY_PARENT:
  Id = WM_GetId(pMsg->hWinSrc);
  NCode = pMsg->Data.v;
  switch (Id)
  {
    case ID_IMAGE_0:
      switch (NCode) {
      case WM_NOTIFICATION_CLICKED:
        hItem = WM_GetDialogItem(pMsg->hWin, ID_IMAGE_0);
        pData = _GetImageById(image_no ? ID_IMAGE_0_IMAGE_0 : ID_IMAGE_0_IMAGE_1, &FileSize);
        IMAGE_SetBMP(hItem, pData, FileSize);
        image_no ^= 1;
        break;
      }
      break;
  }		
  break;


실제 보드에 다운로드하여 동작을 확인해 보았습니다.

반응형

댓글