SCREEN(图形)
来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgScreengraphics 最后更新: 2023-07-12
使用 QB 风格模式编号初始化图形模式。
语法
-lang fb|fblite 方言:
Screen mode [, [depth] [, [num_pages] [, [flags] [, [refresh_rate]]]]]
Screen , [active_page] [, [visible_page]]-lang qb 方言:
Screen [mode] [, [colormode] [, [active_page] [, [visible_page]]]]参数
- mode — QB 风格屏幕模式编号。如果为
0,关闭图形模式并返回控制台。 - depth — 模式 14+ 的每像素颜色深度:8、16 或 32(15 和 24 分别是 16 和 32 的别名)。默认值:8。
- num_pages — 视频页面数。默认值:1。
- flags — 图形驱动程序选项;常量在
fbgfx.bi中定义(详情参见Screenres)。 - refresh_rate — 请求的刷新率。
- active_page — 绘图命令生效的页面。
- visible_page — 向用户显示的页面。
- colormode — 未使用;为兼容 QB 语法而允许。
说明
Screen 链接 GfxLib 并初始化图形模式。在仅 QB 和 GUI 上的 QB 模式中,可以使用 QB 风格的图形和控制台语句。
如果 Screen 无法设置所需模式,将发出"非法函数调用"错误。可以使用 On Error 或检查 ScreenPtr 来检测失败。
可用模式
QB 兼容模式:
| 模式 | 分辨率 | 模拟 | 颜色 |
|---|---|---|---|
| 1 | 320×200 | CGA | 16 背景,4 前景 |
| 2 | 640×200 | CGA | 2 种颜色 |
| 7 | 320×200 | EGA | 16 种颜色 |
| 8 | 640×200 | EGA | 16 种颜色 |
| 9 | 640×350 | EGA | 16 种颜色 |
| 11 | 640×480 | VGA | 2 种颜色 |
| 12 | 640×480 | VGA | 16 种颜色 |
| 13 | 320×200 | MCGA | 256 种颜色 |
FreeBASIC 扩展模式:
| 模式 | 分辨率 |
|---|---|
| 14 | 320×240 |
| 15 | 400×300 |
| 16 | 512×384 |
| 17 | 640×400 |
| 18 | 640×480 |
| 19 | 800×600 |
| 20 | 1024×768 |
| 21 | 1280×1024 |
示例
vb
' Sets screen mode 13 (320×200, 8bpp)
Screen 13
Print "Screen mode 13 set"
Sleepvb
#include "fbgfx.bi"
#if __FB_LANG__ = "fb"
Using FB
#endif
' Sets 640×480, 32bpp, 4 pages, windowed, switching disabled
Screen 18, 32, 4, (GFX_WINDOWED Or GFX_NO_SWITCH)
If ScreenPtr = 0 Then
Print "Error setting video mode!"
End
End If
Print "Successfully set video mode"
Sleep平台差异
- 在 DOS 中,窗口化和 OpenGL 选项不可用。
与 QB 的区别
- 在
-lang qb方言中无差异。 - 在 QB 中,语法为
Screen mode, colormode, active_page, visible_page;FreeBASIC 重新定义了这些参数。 - 在
-lang fb和-lang fblite中,应使用Screenset进行页面管理。