Форум программистов, компьютерный форум CyberForum.ru

Нарисовать строку подсказки - C++

Восстановить пароль Регистрация
 
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
14.11.2011, 23:25     Нарисовать строку подсказки #1
Нужно в консольном приложении нарисовать строку подсказки. Типа "чтобы вернуться назад, нажмите В". Как её сделать?
З.Ы. В паскале я делал с помощью DrawStatus.

Вопрос второй. Какая функция в С++ соответствует паскалевскому window?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 23:25     Нарисовать строку подсказки
Посмотрите здесь:

подсказки в вижуал студио C++
VS 2010 не выводит подсказки C++
Всплывающие подсказки в Visual Studio C++
C++ Прошу подсказки
Microsoft Visual studio 2012 (как включить подсказки?) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zukoz
 Аватар для zukoz
17 / 9 / 1
Регистрация: 17.08.2011
Сообщений: 115
14.11.2011, 23:38     Нарисовать строку подсказки #2
Цитата Сообщение от Ney4 Посмотреть сообщение
Вопрос второй
Windows Form Application WFA. Не оно?
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
14.11.2011, 23:42  [ТС]     Нарисовать строку подсказки #3
Нет, речь всё еще о консольном. Я хочу изменить размер окошка, которое должно закраситься. В паскале бы я использовал "window", а что в С++ я не знаю...
zukoz
 Аватар для zukoz
17 / 9 / 1
Регистрация: 17.08.2011
Сообщений: 115
14.11.2011, 23:57     Нарисовать строку подсказки #4
Что значит закраситься?
Вам просто нужен форм консоли как и в delphi?
или CLR Console Application
или Win32 Console Application.
Но на сколько я вас понял, вам понадобится CLR.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
15.11.2011, 03:25     Нарисовать строку подсказки #5
Цитата Сообщение от Ney4 Посмотреть сообщение
Нужно в консольном приложении нарисовать строку подсказки. Типа "чтобы вернуться назад, нажмите В".
Вот посмотри вариант, сделал как можно проще.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <windows.h>
#include <stdio.h>
 
BOOL DrawStatus(short x, short y, const char* str) {
   CONSOLE_SCREEN_BUFFER_INFO info = {0};
   HANDLE  hout = NULL;
   char* ostr = NULL;
 
   if((hout = GetStdHandle(STD_OUTPUT_HANDLE)) == INVALID_HANDLE_VALUE)
         return FALSE;
   GetConsoleScreenBufferInfo(hout, &info);
   if(x >= info.dwSize.X || y >= info.dwSize.Y) {
         SetLastError(1u);
         return FALSE;
   }
   ostr = (char*) calloc(strlen(str) + 1u, sizeof(char));
   if(ostr == NULL)
        return FALSE;
   CharToOemA(str, ostr);
 
   DWORD dw    = 0u;
   WORD  color = 27;
   COORD pos;
   for(short x1 = x; x1 < x + short(strlen(str)+2); x1++) {
         for(short y1 = y; y1 < y + 3; y1++) {
              pos.X = x1;
              pos.Y = y1;
              WriteConsoleOutputAttribute(hout, &color, 1u, pos, &dw);
         }
    }
    pos.X = x + 1;
    pos.Y = y + 1;
    WriteConsoleOutputCharacterA(hout, ostr, strlen(ostr), pos, &dw);
    free(ostr);
    ostr = NULL;
    return TRUE;
}
 
int main(void) {
   if(! DrawStatus(5, 3, "Чтобы вернуться назад, нажмите В")) 
           printf("error code(%d)\n", GetLastError());
   getchar();
   return 0;
}
Ney4
8 / 8 / 0
Регистрация: 28.10.2011
Сообщений: 100
17.11.2011, 23:36  [ТС]     Нарисовать строку подсказки #6
xAtom, хмм... спасибо только код слишком длинный... В Паскале хватало нескольких "слов", чтобы таблицу подсказки написать.

Может, вам прислать скриншот того, что я хочу сделать в С++ ?
Yandex
Объявления
17.11.2011, 23:36     Нарисовать строку подсказки
Ответ Создать тему
Опции темы

Текущее время: 19:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru