| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6993 人关注过本帖
标题:关于 HANDLE的问题
只看楼主 加入收藏
zhangheyan19
Rank: 2
等 级:论坛游民
帖 子:16
专家分:16
注 册:2016-4-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
关于 HANDLE的问题
程序代码:
#include<stdio.h>
#include<windows.h>

void Pos(int x,int y)//设置光标位置
{
    COORD pos;
    HANDLE hOutput;
    pos.X=x;
    pos.Y=y;    
    hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput,pos);
}

void creatMap()//创建地图
{
    int i;
    for(i=0;i<58;i+=2)//打印上下边框
    {
        Pos(i,0);
        printf("");
        Pos(i,26);
        printf("");
    }
    for(i=1;i<26;i++)//打印左右边框
    {
        Pos(0,i);
        printf("");
        Pos(56,i);
        printf("");
    }
    
}

int main()
{
    creatMap();
}


这个谁能给我说下     hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput,pos);这2行有什么效果   如果能说下这2行的流程就更好了
2016-05-12 21:43
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:5 
hOutput=GetStdHandle(STD_OUTPUT_HANDLE); 获取标准输出设备的句柄
SetConsoleCursorPosition(hOutput, pos);  在标准输出设备(hOutput)上定位光标(pos)
2016-05-12 22:00
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:15 
GetStdHandle(STD_OUTPUT_HANDLE)  返回标准的输出的句柄  参数:STD_OUTPUT_HANDLE 是标准输出的句柄
SetConsoleCursorPosition(hOutput,pos)  实现光标的位置控制。。
  COORD pos;//pos就是一个结构体变量,x和y就是成员
    HANDLE hOutput;
    pos.X=x;   
    pos.Y=y;   
    hOutput=GetStdHandle(STD_OUTPUT_HANDLE);//返回一个标准输出句柄
    SetConsoleCursorPosition(hOutput,pos);//得到光标位置的控制
楼主如果想要深入了解这类知识,可以阅读<windows程序设计>这本书。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-05-12 22:04
zhangheyan19
Rank: 2
等 级:论坛游民
帖 子:16
专家分:16
注 册:2016-4-5
收藏
得分:0 
以下是引用lanke711在2016-5-12 22:04:58的发言:

GetStdHandle(STD_OUTPUT_HANDLE)  返回标准的输出的句柄  参数:STD_OUTPUT_HANDLE 是标准输出的句柄
SetConsoleCursorPosition(hOutput,pos)  实现光标的位置控制。。
  COORD pos;//pos就是一个结构体变量,x和y就是成员
    HANDLE hOutput;
    pos.X=x;   
    pos.Y=y;   
    hOutput=GetStdHandle(STD_OUTPUT_HANDLE);//返回一个标准输出句柄
    SetConsoleCursorPosition(hOutput,pos);//得到光标位置的控制
楼主如果想要深入了解这类知识,可以阅读<windows程序设计>这本书。

返回一个标准输出句柄有什么作用吗  比如x = 1, y = 1; 那hOutput是什么值
2016-05-12 22:18
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
返回一个句柄值,才能引用它得到其它的对象,在这里,声明了一个句柄 对象h0utput ,它保存了标准输出句柄返回的值,然后在函数SetConsoleCursorPosition(hOutput,pos)做参数;得到光标的位置。像这种API调用的函数,参数一般都有引用句柄的。你现在不理解,又想深入了解就得阅读这方面的书本。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-05-13 02:23
快速回复:关于 HANDLE的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017876 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved