Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/132: Рейтинг темы: голосов - 132, средняя оценка - 4.77
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
1

Что означают параметры функции SetConsoleCursorPosition?

01.02.2011, 16:43. Просмотров 24710. Ответов 17
Метки нет (Все метки)


Здравствуйте господа программисты! У меня такой вопрос-SetConsoleCursorPosition(h, c); что означает h,c я так понимаю это координаты по вертикали и горизонтали?и ещё как я могу ей воспользоваться,т.е. просто написать и с того место он не начинает писать как я могу это осуществить,возможно надо что то подключать.если возможно элементарный текст программы и объяснения к нему. Заранее всем огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2011, 16:43
Ответы с готовыми решениями:

Что означают параметры %d, %s, %f и т.д.?
Появилась проблема с выводом переменных в MessageBox. В MSDN нарыл это: #include <stdio.h> ...

Что означают параметры команды line?
Что означают параметры команды line line(,, 'color',, 'linewidth',1) line(, , 'color',,...

Теория массового обслуживания (что означают параметры задания)
Доброго дня, Уважаемые. Может кто подскажет, что могут означать следующие параметры, указанные в...

Параметры соединения - rsLevel.Open sql,DB,3,1 Что означают цифры?
Я вот что хочу спросить, что значат цифры 3,1 и на что они влияют? rsLevel.Open sql,DB,3,1

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
17
598 / 566 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
01.02.2011, 16:47 2
h - это хендл
C++
1
2
3
4
BOOL WINAPI SetConsoleCursorPosition(
  __in  HANDLE hConsoleOutput,
  __in  COORD dwCursorPosition
);
hConsoleOutput [in]

A handle to the console screen buffer. The handle must have the GENERIC_READ access right. For more information, see Console Buffer Security and Access Rights.
dwCursorPosition [in]

A COORD structure that specifies the new cursor position, in characters. The coordinates are the column and row of a screen buffer character cell. The coordinates must be within the boundaries of the console screen buffer
0
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.02.2011, 16:56  [ТС] 3
конечно спасибо но можно на русском языке и конкретный текст программы от и до
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6833 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
01.02.2011, 17:43 4
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstring>
#include <iostream>
#include <windows.h>
 
#define WIDTH 80
#define HEIGHT 22
 
int main(){
    char str[] = "Hello, world!";
    HANDLE hCon;
    COORD cPos;
    
    hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    cPos.Y = HEIGHT / 2;
    cPos.X = ( WIDTH - strlen(str) ) / 2;
    SetConsoleCursorPosition(hCon, cPos);
    std::cout << str << std::endl;
 
    std::cin.get();
 
    return 0;
}
5
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.02.2011, 17:48  [ТС] 5
и это самый простой пример?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6833 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
01.02.2011, 17:57 6
Цитата Сообщение от Игорь с++ Посмотреть сообщение
и это самый простой пример?
Ну как-то проще не придумалось... А с чем сложности?
1
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
01.02.2011, 19:32  [ТС] 7
А с чем сложности?
со всем кроме-include<iostream>,int main и return
0
11 / 11 / 1
Регистрация: 19.03.2010
Сообщений: 71
14.02.2011, 23:35 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <cstring>
#include <iostream>
#include <windows.h>
 
#define WIDTH 80                         // Макрос ширины
#define HEIGHT 22                        // Макрос высоты
 
int main(){
    char str[] = "Hello, world!";    // Создал переменную  символьного типа и положил в нее фразу! 
    HANDLE hCon;                     // Задал имя заголовка который будет использовать в дальнейшем
    COORD cPos;                       // Задал координаты X и Y. Тип Short - целочисленный знаковый тип
    
    hCon = GetStdHandle(STD_OUTPUT_HANDLE); //    Кто точно знает как обозвать что тут происходит
                                                                       //    пусть напишет.
 
    cPos.Y = HEIGHT / 2;                        // Задает координаты для Y
    cPos.X = ( WIDTH - strlen(str) ) / 2;    // Задает координаты для X
    SetConsoleCursorPosition(hCon, cPos); // SetConsoleCursorPosition Установить курсор на позицию  
                                                             // заголовка hCon в координаты cPos
 
    std::cout << str << std::endl;             // std - Стандартная библиотека языка С++ 
        // Тут не обязательно писать std::cout ... Можно так же благополучно написать  перед функцией 
        // int main() using namespace std (использовать стандартное пространство имен std).
        // и тогда можно использовать такой вывод: cout << str << endl;
                                                           
 
    std::cin.get();        // чет вписывает. 
 
    return 0;                // Возвращает значение 0 тем самым благополучно закрывая программу!  
}


Я тебе объяснил что сам знаю, если что не так то ребята в любом случае меня поправят.
5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6833 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
15.02.2011, 01:53 9
Цитата Сообщение от Maikl Til Посмотреть сообщение
hCon = GetStdHandle(STD_OUTPUT_HANDLE); // Кто точно знает как обозвать что тут происходит // пусть напишет.
Попробую угадать: получение хэндла консоли? Надо же что-то в SetConsoleCursorPosition параметром подсовывать...

Цитата Сообщение от Maikl Til Посмотреть сообщение
std::cin.get(); // чет вписывает
Читает символ с консоли. Нужно исключительно для того, чтобы программа не закрывалась, пока enter не нажмёшь.
1
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.04.2012, 04:49 10
а назначение хэндлера в том,чтобы как-то идинтифицировать программу,а то погуглил,а чёткого ответа не нашёл,обычно приводят несколько ответов
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
10908 / 6833 / 1625
Регистрация: 25.07.2009
Сообщений: 12,540
05.04.2012, 08:58 11
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от alexey31415 Посмотреть сообщение
а назначение хэндлера в том,чтобы как-то идинтифицировать программу
Если в подробности не вдаваться, можно представлять себе хендл, как некоторое число, которое винда присваивает любому создаваемому элементу (будь то окно на экране, кнопка в этом окне, или внешнее устройство какое-нибудь), чтобы отличать его от всего остального. При запуске консольного приложения система связывает с ним три файла - стандартный ввод (клава), стандартный вывод (то самое консольное окно), стандартный вывод ошибок (как правило, связывается с тем же стандартным выводом, только не буферизируется). Если программа запускается из консоли, ОС связывает вывод с той же консолью, если нет - система создаст новую консоль и откроет программу в ней. В любом случае хендл той консоли, в которой программа выполняется, вернёт GetStdHandle(STD_OUTPUT_HANDLE). Соответственно SetConsoleCursorPosition(hCon, cPos) будет устанавливать курсор в той самой консоли, хендл которой мы ей параметром передали.
6
59 / 59 / 7
Регистрация: 16.05.2010
Сообщений: 632
05.04.2012, 09:44 12
спасибо,доступно объяснили
0
1 / 1 / 2
Регистрация: 05.04.2013
Сообщений: 26
05.04.2013, 23:30 13
А можно ли так же просто поставить курсор в нужное место в консоли, задав это место двумя координатами?
0
479 / 471 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
06.04.2013, 00:33  [ТС] 14
Altafard, можно и даже без особых переделок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstring>
#include <iostream>
#include <windows.h>
 
#define WIDTH 80
#define HEIGHT 22
 
int main(){
    int a;
    HANDLE hCon;
    COORD cPos;
    
    hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    cPos.Y = HEIGHT / 2;
    cPos.X = ( WIDTH  ) / 2;
    SetConsoleCursorPosition(hCon, cPos);
std::cin>>a;
 
    std::cin.get();
 
    return 0;
}
1
Заблокирован
06.04.2013, 00:57 15
Можно сделать обертку, что довольно удобно:

C++
1
2
3
4
5
6
7
8
9
10
void gotoXY( int column, int line )
  {
  COORD coord;
  coord.X = column;
  coord.Y = line;
  SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    );
  }
1
0 / 0 / 0
Регистрация: 01.02.2010
Сообщений: 5
26.12.2014, 16:58 16
Вопрос. как позиции курсора. присвоить значение ? допустим char.
0
1 / 1 / 0
Регистрация: 06.03.2016
Сообщений: 3
26.04.2016, 19:52 17
Цитата Сообщение от tiutea Посмотреть сообщение
Вопрос. как позиции курсора. присвоить значение ? допустим char.
C++
1
2
3
4
5
6
7
8
9
10
char ch[]="Hello world";
 
void GotoXY(int X, int Y)
{
    COORD coord = { X, Y };
    SetConsoleCursorPosition(hStdOut, coord);
} 
 
GotoXY(1,10);//1 столбец 10 строка
cout<<ch<<endl;
1
6 / 3 / 0
Регистрация: 19.03.2019
Сообщений: 125
15.05.2019, 12:40 18
Цитата Сообщение от easybudda Посмотреть сообщение
Цитата Сообщение от Maikl Til Посмотреть сообщение
std::cin.get(); // чет вписывает.
Читает символ с консоли. Нужно исключительно для того, чтобы программа не закрывалась, пока enter не нажмёшь.
Легче getch() вставить :
C++
1
2
3
4
5
#include <conio.h>
int main() {
…
getch(); //Ожидание нажатия любой клавиши с клавиатуры
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2019, 12:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Что означают эти функции?
Что означают эти записи? system(&quot;chcp 1251&quot;); system(&quot;cls&quot;); Добавлено через 5 минут Еще вот...

Поясните что означают некоторые функции
1- что означает эта строка? int f(char *s, char *c, int n) { 2-int main(int argc, char* argv)...

Что означают квадратные скобки в данной функции?
Вопрос может покажется и глупым, но подскажите, что означают квадратные скобки в данной функции?...

Прокомментируйте, пожалуйста, 2,3 функции (хотя бы, что означают)
Подскажите 2,3 функции хотя бы что означают) Надо прокомментировать ,завтра предзащита ,сам накидал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.