커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
828
1,243
3,878
3,702,349
  현재접속자 : 60 (회원 0)






배너 신청 문의

 
작성일 : 05-08-24 15:10
왕초보를 위한 Nano-X 3편 (window 생성)
 글쓴이 : 냐옹이
조회 : 19,151  
화면에 출력하기 위해서는 window가 하나라도 있어야 합니다.
이 window 위에 원하는 것을 그려서 출력하게 됩니다.

GrNewWindow() 또는 GrNewWindowEx()를 이용해서 window를 생성합니다.
GrNewWindowEx()는 GrNewWindow()의 확장 형태입니다.

GR_WINDOW_ID
GrNewWindow(GR_WINDOW_ID parent, GR_COORD x, GR_COORD y, GR_SIZE width,
    GR_SIZE height, GR_SIZE bordersize, GR_COLOR background,
    GR_COLOR bordercolor)

GR_WINDOW_ID
GrNewWindowEx(GR_WM_PROPS props, GR_CHAR * title, GR_WINDOW_ID parent,
          GR_COORD x, GR_COORD y, GR_SIZE width, GR_SIZE height,
          GR_COLOR background)

GrNewWindowEx() argument에 대해 설명해 보겠습니다.

props - window의 속성을 정합니다.
title - window Title 부분에 출력될 내용입니다.
parent - 부모 window를 설정합니다. GR_ROOT_WINDOW_ID로 설정하면 최상위 window가 됩니다.
x, y - 생성할 window의 왼쪽 맨위 좌표입니다. 이 좌표는 parent window 내부 좌표입니다.
width, height - 생성할 window의 폭과 높이입니다.
background - window 내부의 색입니다.

GR_WM_PROPS 정리

#define GR_WM_PROPS_NOBACKGROUND 0x00000001L
#define GR_WM_PROPS_NOFOCUS     0x00000002L
#define GR_WM_PROPS_NOMOVE     0x00000004L
#define GR_WM_PROPS_NORAISE     0x00000008L
#define GR_WM_PROPS_NODECORATE     0x00000010L
#define GR_WM_PROPS_NOAUTOMOVE     0x00000020L
#define GR_WM_PROPS_NOAUTORESIZE 0x00000040L


#define GR_WM_PROPS_APPWINDOW    0x00000000L
#define GR_WM_PROPS_APPMASK    0xF0000000L
#define GR_WM_PROPS_BORDER    0x80000000L
#define GR_WM_PROPS_APPFRAME    0x40000000L
#define GR_WM_PROPS_CAPTION    0x20000000L
#define GR_WM_PROPS_CLOSEBOX    0x10000000L
#define GR_WM_PROPS_MAXIMIZE    0x08000000L

Window 생성 예제
GrNewWindow(GR_ROOT_WINDOW_ID, 11, 143, 209, 100, 1, BLUE, GREEN);
GrNewWindowEx(GR_WM_PROPS_APPWINDOW, "tsdemo", GR_ROOT_WINDOW_ID, 100, 50, COLS - 120, ROWS - 60, GRAY);

Window 생성 팁
window의 내부만 출력하고 싶을 때는 props에 GR_WM_PROPS_NODECORATE를 설정하면 됩니다.
전체 화면으로 출력하고 싶을 때는 GrGetScreenInfo()를 이용해 현재 화면 사이즈를 알아낸 뒤 이 값으로 w,h를 주면 됩니다.
배경을 투명하게 출력하고 싶을 때는 background에 GR_ARGB(0,0,0,0)을 주면 됩니다.
자식 윈도우를 만들고 싶을 때는 parent에 부모 window ID를 적어주면 됩니다.



 
 

Total 17
번호 제   목 글쓴이 날짜 조회
17 timer 사용하는 방법 입니다.. 토마토 08-28 18247
16 마이크로윈도우 nano-X api 간단 [tip] 토마토 09-01 20534
15 nano-x에서의 이벤트 처리 (1) 조규봉 01-24 23342
14 왕초보를 위한 Nano-X 5편 (freetype font) 냐옹이 01-02 21135
13 왕초보를 위한 Nano-X 4편 (한글 기본 폰트) 냐옹이 12-28 23952
12 왕초보를 위한 Nano-X 3편 (window 생성) 냐옹이 08-24 19152
11 왕초보를 위한 Nano-X 2편 (이미지 관련 함수 분… 냐옹이 08-11 15438
10 왕초보를 위한 Nano-X 1편 (helloworld.c 분석하기) 냐옹이 08-08 14988
9 microwindows 한글 TrueType fonts 출력하기 최고관… 06-16 14081
8 Cygwin 에서 Microwindows 컴파일 하기 (2) 채영훈 04-07 20389
7 메뉴구성 및 글자색 변경 참고 소스 (8) 장진혁 12-17 20720
6 한글 출력 방법 및 예제 소스 (2) 장진혁 12-13 14362
5 Keyboard Event 입력 처리 소스 장진혁 12-13 15883
4 이미지 출력 소스 장진혁 12-13 13917
3 Hello World 소스 장진혁 12-13 13220
2 Microwindows 0.90 설치 (1) 장진혁 12-13 17253
1 microwindows 한글 TrueType fonts 출력하기 (5) 김용오 12-16 15143


About korone.net | Copyright 2003 korone.net. All rights reserved.