Wow, how did I write that much and not notice `get-client-size`, which is exactly what I want? The documentation is fine, apparently I just can't read today!
On Saturday, July 24, 2021 at 10:55:58 AM UTC-5 Ryan Kramer wrote: > The following program looks "correct" when my Windows display scaling is > set to 100%, and looks "wrong" when set to anything higher than 100%. By > "correct" I mean that the 4 squares meet in the center of the canvas, > stretched to the maximum size possible that the canvas width and height > will allow. > > What is interesting is that I can make the program look correct by > immediately scaling the values returned from `get-scaled-client-size`. For > example, if my display is set to 150%, I can make the program look correct > by immediately multiplying the returned width and height by 2/3, because > 100% is 2/3 of 150%. But right now I have to hard-code the 2/3 factor. Is > there a way to get that 2/3 factor programmatically in Racket? Or (even > better), is there something else I should be calling instead of > `get-scaled-client-size` that would return the dimensions I want? > > This is Racket CS 8.0.0.11 on Windows. Let me know if you want > screenshots. Thanks in advance. > > > #lang racket/gui > > (require pict) > > (define frame > (new frame% > [label "Scale Test"])) > > (define (paint canvas dc) > (define-values (w h) (send canvas get-scaled-client-size)) > (define-values (size x-offset y-offset) > (if (> w h) > (values h (/ (- w h) 2) 0) > (values w 0 (/ (- h w) 2)))) > (println (list w h size x-offset y-offset)) > (for ([x (list x-offset (+ x-offset (/ size 2)))] > #:when #t > [y (list y-offset (+ y-offset (/ size 2)))]) > (send dc draw-rectangle x y (/ size 2) (/ size 2)))) > > (define canvas > (new canvas% > [parent frame] > [paint-callback paint])) > > (send frame show #t) > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/31a9adf4-c257-4871-88a5-6a01e9857f43n%40googlegroups.com.

