gpt4 book ai didi

Racket:为什么不能在 Windows 中设置 Canvas 的背景

转载 作者:行者123 更新时间:2023-12-04 05:25:19 24 4
gpt4 key购买 nike

这是我的代码:

#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 上,背景是白色的。
为什么? Racket 版本是 5.3,这是 5.3 的错误?

最佳答案

颠倒set-background的顺序和 clear .

调用 clear使用当前背景的颜色进行填充。如果不知何故你的 on-paint至少被调用过一次,那么你会观察到黑色背景,因为第二次,当前背景颜色将是黑色。我怀疑这就是您观察到的特定于平台的差异的原因。

关于Racket:为什么不能在 Windows 中设置 Canvas 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com