Racket 球拍:为什么可以';t设置画布';windows中的背景
这是我的代码:Racket 球拍:为什么可以';t设置画布';windows中的背景,racket,Racket,这是我的代码: #lang racket (require racket/gui) (define-values (screen-width screen-height) (get-display-size)) (define *app-width* 400) (define *app-height* 125) (define *vm-frame* (new frame% [label "Test"]
#lang racket
(require racket/gui)
(define-values (screen-width screen-height) (get-display-size))
(define *app-width* 400)
(define *app-height* 125)
(define *vm-frame* (new frame%
[label "Test"]
[width *app-width*]
[height *app-height*]
[x (- (quotient screen-width 2) (quotient *app-width* 2))]
[y (- (quotient screen-height 2) (quotient *app-height* 2))]
))
(define frame-canvas%
(class canvas%
(super-new)
(inherit get-dc)
(define/override (on-paint)
(let ([my-dc (get-dc)])
(send my-dc clear)
(send my-dc set-background "black")))))
(let ([frame-canvas (new frame-canvas% [parent *vm-frame*])])
(send *vm-frame* show #t))
在mac os上,显示黑色背景的应用程序是正常的。
但在windows上,背景是白色的。
为什么?球拍版本是5.3,这是一个5.3错误?颠倒
设置背景
和清除
的顺序
对clear
的调用使用当前背景的颜色进行填充。如果您的on paint
至少被调用了一次,那么您将观察到黑色背景,因为第二次调用时,当前背景颜色将为黑色。我怀疑这就是您观察到的平台特定差异的原因