我在Question/Answer找到了针对Python的答案。我想知道如何在F#中执行此操作,以及具体需要导入什么以及如何获取设备上下文。我知道最好使用窗口,但我也不想为正在处理的项目使用窗口。我猜也有一种获取屏幕宽度/高度的方法。
答案 0 :(得分:3)
这是一个最小的示例,该示例使用GetDC
和SetPixel
函数与所引用问题中的Python示例完全相同:
open System
open System.Runtime.InteropServices
[<DllImport("user32.dll",EntryPoint="GetDC")>]
extern IntPtr GetDC(IntPtr ptr)
[<DllImport("gdi32.dll")>]
extern uint32 SetPixel(IntPtr hdc, int X, int Y, uint32 crColor);
let dc = GetDC(IntPtr.Zero)
for i in 0 .. 255 do
let r, g, b = 255, i, 255
let clr = (r <<< 16) ||| (g <<< 8) ||| b
SetPixel(dc, i, 0, uint32 clr) |> ignore
也就是说,我无法想象这将是一件好事的情况。如果您要创建一个明智的Windows应用程序,那么您肯定会想要在属于您应用程序的窗口中绘制任何内容。