2013-06-04 4 views
2

안녕하세요, 좌표계가있는 창에 이미지를 삽입하는 방법을 알고 싶습니다.이미지를 프레임에 삽입하십시오. x y 좌표

(define ventana (new frame% 
        [label "Ba"] 
        [width 1100] 
        [height 600])) 


(define tablero-panel (new horizontal-panel% 
          (parent ventana) 
          ;(label "Group Box Panel") 
          (alignment '(left top)) 
          (min-width 500) 
          (min-height 500) 
          (stretchable-width #f) 
          (stretchable-height #f) 
          ;(spacing 100) 
          ;(vert-margin 100) 
          ;(horiz-margin 500) 
          ; (border 50) 

          ) 
) 

그 이미지가 창 프레임에 있지만 특정 좌표

나는이 페이지에서 볼하지만 coordinatesthey가 XY에서

bitmap in dr racket

+0

위의 코드는 구문이 올바르지 않습니다. 아직 해 보셨습니까? – GoZoner

+0

진실은 내가 가지고있다 : 메인 메시지에서 편집 됨 공개 사용자 어떻게 메시지 % 통해하지만 이미지를 표시하는 창의 좌표를 설정할 수 없습니다 – luis008

답변

1

될 수 없습니다 삽입에 필요한 것은 당신이하려는 것은 GUI 라이브러리의 곡물 반대입니다. GUI 라이브러리의 디자인은 직접 레이아웃을 제어하려고 시도하는 것이 아니라 레이아웃을 제어하는 ​​것입니다. Geometry Management을 참조하십시오.

오브젝트가 그려지는 곳을 더 자세히 제어하려면 canvas% 인스턴스가 하나있는 프레임을 만들고 그 안에 원하는 것을 그립니다. 캔버스의 드로잉 컨텍스트 (dc) 중 draw-bitmap을 사용할 수 있습니다. 예를 들어

:

#lang racket/gui 
(require net/url) 


(define f (new frame% 
       [label "Test"] 
       [width 500] 
       [height 500])) 

(define bm (make-object bitmap% (get-pure-port 
           (string->url "http://racket-lang.org/logo.png")))) 

(define pos 0) 

(define mycanvas% 
    (class canvas% 
    (super-new) 
    (inherit get-dc) 
    (define/override (on-paint) 
     (let ([my-dc (get-dc)]) 
     (send my-dc draw-bitmap bm pos pos))))) 

(define c (new mycanvas% [parent f])) 

(send f show #t) 

(void 
(thread (lambda() 
      (let loop() 
      (set! pos (add1 pos)) 
      (send c refresh) 
      (sleep 1/20) 
      (loop)))))