游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1462|回复: 1

请教:VB中调用OPENGL如何在其中输入字符

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-5-3 22:10:00 | 显示全部楼层 |阅读模式
编译环境:VB6.0


其中使用的代码如下:

wglUseFontBitmaps wglGetCurrentDC, 0, 255, 1000
glListBase 1000

glColor3f 0, 0, 1
glRasterPos3f 1, 1, 1
   
glCallLists 24, GL_UNSIGNED_BYTE, "123456789012345678901234"

结果显示的是乱码,不知道是什么原因,望各位指教啊!

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-5-4 01:56:00 | 显示全部楼层

Re:请教:VB中调用OPENGL如何在其中输入字符

我使用的是vc7.

声明一个变量
GLuint base;

base = glGenLists(96); // 一般96个字符就够了

wglUseFontBitmaps(hDC, 32, 96, base); // 将ascii中的第32个字符作为显示列表中的第1个

glPushAttrib(GL_LIST_BIT); // 将显示列表位放入堆栈
glListBase(base - 32); // 将ascii中的第32个字符与显示列表中的第1个联系起来
glCallLists(....);
glPopAttrib();

说明一下: 显示列表为0到95, 对应的ASCII码为32到127。
举个例子: A的ASCII码为65, 减去32为33, 正好对应列表中的A。
如果是wglUseFontBitmaps(hDC, 0, 255, base), 那就不用减去32了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 10:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表