社区
C语言
帖子详情
C下面的图形编程,刷新屏幕用哪种方式比较快?
freespider
2003-11-19 12:07:41
C++中可以通过memdc提供速度,c中怎么做呢?
另现在要用c编写图形程序,手边资料不够,请各位推荐一些。
谢谢!
...全文
46
10
打赏
收藏
C下面的图形编程,刷新屏幕用哪种方式比较快?
C++中可以通过memdc提供速度,c中怎么做呢? 另现在要用c编写图形程序,手边资料不够,请各位推荐一些。 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
freespider
2003-11-19
打赏
举报
回复
怎么写啊?
Meyer
2003-11-19
打赏
举报
回复
内存拷贝应该比较快了
freespider
2003-11-19
打赏
举报
回复
up
freespider
2003-11-19
打赏
举报
回复
up
zxftdm
2003-11-19
打赏
举报
回复
initscr()
initscr() 是一般 curses 程式必须先呼叫的函数, 一但这个函数
被呼叫之後, 系统将根据终端机的形态并启动 curses 模式.
□ endwin()
curses 通常以呼叫 endwin() 来结束程式. endwin() 可用来关闭
curses 模式, 或是暂时的跳离 curses 模式.如果您在程式中须要
call shell ( 如呼叫 system() 函式 ) 或是需要做 system call,
就必须先以 endwin() 暂时跳离 curses 模式. 最後再以
wrefresh() doupdate() 来重返 curses 模式.
□ cbreak()
nocbreak()
当 cbreak 模式被开启後, 除了 DELETE 或 CTRL 等仍被视为特殊
控制字元外一切输入的字元将立刻被一一读取.当处於 nocbreak 模
式时, 从键盘输入的字元将被储存在 buffer 里直到输入 RETURN
或 NEWLINE.在较旧版的 curses 须呼叫 crmode(),nocrmode() 来
取代 cbreak(),nocbreak()
□ nl()
nonl()
用来决定当输入资料时, 按下 RETURN 键是否被对应为 NEWLINE 字
元 ( 如 \n ).
而输出资料时, NEWLINE 字元是否被对应为 RETURN 和 LINDFEED
系统预设是开启的.
□ echo()
noecho()
此函式用来控制从键盘输入字元时是否将字元显示在终端机上.系统
预设是开启的.
□ intrflush(win,bf)
呼叫 intrflush 时须传入两个值:
win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr
bf 为 TRUE 或 FALSE
当 bf 为 true 时, 当输入中断字元 ( 如 break) 时, 中断的反应
将较为快速.但可能会造成萤幕的错乱.
□ keypad(win,bf)
呼叫 keypad 时须传入两个值:
win 为一 WINDOW 型态指标, 通常传入标准输出入萤幕 stdscr
bf 为 TRUE 或 FALSE
当开启 keypad 後, 可以使用键盘上的一些特殊字元, 如上下左右
等方向键, curses 会将这些特殊字元转换成 curses.h 内定义的一
些特殊键. 这些定义的特殊键通常以 KEY_ 开头.
□ refresh()
refresh() 为 curses 最常呼叫的一个函式.
curses 为了使萤幕输出入达最佳化, 当您呼叫萤幕输出函式企图改
变萤幕上的画面时, curses 并不会立刻对萤幕做改变, 而是等到
refresh() 呼叫後, 才将刚才所做的变动一次完成. 其馀的资料将
维持不变. 以尽可能送最少的字元至萤幕上. 减少萤幕重绘的时间.
如果是 initscr() 後第一次呼叫 refresh(), curses 将做清除萤
幕的工作.
■ 游标的控制
move(y,x) 将游标移动至 x,y 的位置
getyx(win,y,x) 得到目前游标的位置
(请注意! 是 y,x 而不是 &y,&x )
■ 有关清除萤幕的函式
clear()
erase() 将整个萤幕清除
(请注意配合refresh() 使用)
■ 如何在萤幕上显示字元
echochar(ch) 显示某个字元
addch(ch) 显示某个字元
mvaddch(y,x,ch) 在(x,y) 上显示某个字元
相当於呼叫 move(y,x);addch(ch);
addstr(str) 显示一串字串
mvaddstr(y,x,str) 在(x,y) 上显示一串字串
相当於呼叫 move(y,x);addstr(str);
printw(format,str) 类似 printf() , 以一定的格式输出至萤幕
mvprintw(y,x,format,str) 在(x,y) 位置上做 printw 的工作.
相当於呼叫 move(y,x);printw(format,str);
■ 如何从键盘上读取字元
getch() 从键盘读取一个字元 (注意! 传回的是
整数值)
getstr() 从键盘读取一串字元
scanw(format,&arg1,&arg2...) 如同 scanf, 从键盘读取一串字元
□例:
int ch;
char string1[80]; /* 请注意! 不可宣告为 char *string1; */
char string2[80];
echo(); /* 开启 echo 模式, 使输入立刻显示在萤幕上 */
ch=getch();
string1=getstr();
scanw("%s",string2);
mvprintw(10,10,"String1=%s",string1);
mvprintw(11,10,"String2=%s",string2);
■ 如何利用方向键
curses 将一些如方向键等特殊控制字元, 以 KEY_ 为开头定义在 curses.h
这个档案里头, 如 KEY_UP 即代表方向键的 " ↑ ". 但, 如果您想使用
curses.h 所为您定义的这些特殊键的话, 您就必须将 keypad 设定为
TRUE. 否则, 您就必须自己为所有的特殊键定义了.
curses.h 为一些特殊键的定义如下:
KEY_UP 0403 ↑
KEY_DOWN 0402 ↓
KEY_LEFT 0404 ←
KEY_RIGHT 0405 →
KEY_HOME 0406 Home key (upward+left arrow)
KEY_BACKSPACE 0407 backspace (unreliable)
KEY_F0 0410 Function keys.
KEY_F(n) (KEY_F0+(n)) formula for f .
KEY_NPAGE 0522 Next page
KEY_PPAGE 0523 Previous page
zxftdm
2003-11-19
打赏
举报
回复
refresh() 为 curses 最常呼叫的一个函式.
curses 为了使萤幕输出入达最佳化, 当您呼叫萤幕输出函式企图改变萤幕上的画面时, curses 并不会立刻对萤幕做改变, 而是等到refresh() 呼叫後, 才将刚才所做的变动一次完成. 其馀的资料将维持不变. 以尽可能送最少的字元至萤幕上. 减少萤幕重绘的时间.如果是 initscr() 後第一次呼叫 refresh(), curses 将做清除萤幕的工作.
freespider
2003-11-19
打赏
举报
回复
up
catowl
2003-11-19
打赏
举报
回复
UP
极速小王子
2003-11-19
打赏
举报
回复
不知道!
freespider
2003-11-19
打赏
举报
回复
up
java源码包---java 源码 大量 实例
通过网络或磁盘等
方式
,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
C语言
图形
化
编程
【一】
C语言
图形
化
编程
一、绘图窗口1.1 加载头文件1.2 创建一个窗口1.3 关闭窗口1.4 窗口坐标1.5 颜色1.6 设置颜色1.6.1 背景颜色1.6.2 线颜色1.6.3 文字颜色1.6.4 填充颜色二、基本的绘图2.1 画点函数2.2 画线函数2.3 画...
3天掌握Windows GDI+
图形
编程
GDI是Graphics Device Interface的缩写,含义是
图形
设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的
图形
输出。 GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用...
C语言迷宫游戏设计如何解决
屏幕
严重刷屏问题同时实现运行时间的显示
为了实现运行时间的显示,可以在游戏循环中记录游戏开始的时间,然后在每次
刷新
屏幕
时计算当前时间与游戏开始时间之间的差值,并显示出来。优化字符绘制,例如使用全角字符代替半角字符,这样相同区域内需要显示的...
如何进行
图形
界面和
图形
编程
?
C语言虽然是一种面向过程的
编程
语言,不像一些现代语言有直接的
图形
界面支持,但我们仍然可以通过使用
图形
库来实现基本的
图形
编程
。在本文中,我们将介绍
图形
界面的基本概念、
图形
编程
的基本原理以及在C语言中进行...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章