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

C++ Консоль. Графика - C++

Восстановить пароль Регистрация
 
Мусаси
 Аватар для Мусаси
7 / 7 / 0
Регистрация: 07.05.2013
Сообщений: 176
12.01.2014, 12:51     C++ Консоль. Графика #1
Добрый день. Возник такой вопрос. Как создать в консольном приложении кнопку и чтобы она выполняла действие? Например вывести информацию об авторе работы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 12:51     C++ Консоль. Графика
Посмотрите здесь:

Консоль C++
Консоль C++
Консоль C++
консоль C++
C++ консоль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xoror
 Аватар для xoror
29 / 31 / 2
Регистрация: 15.12.2013
Сообщений: 147
12.01.2014, 13:41     C++ Консоль. Графика #2
Цитата Сообщение от Мусаси Посмотреть сообщение
Как создать в консольном приложении кнопку?
Никак
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
12.01.2014, 14:03     C++ Консоль. Графика #3
Появилась идея -
создать новое диалоговое окно с кнопкой
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
#include <windows.h>
#include "resource.h"
int WINAPI fn(HWND hwnd,int cmd,WPARAM wp,LPARAM lp)
{
    switch(cmd)
    {
 
    case WM_CLOSE:
        EndDialog(hwnd,2); 
        return 1;
    case WM_COMMAND:
        switch(LOWORD(wp))
        {
        case IDOK:  // обработка кнопки OK
            EndDialog(hwnd,0); 
            return 1;
        case IDCANCEL:
            EndDialog(hwnd,1); // обработка кнопки Cancel
            return 1;
        }
        return 0;
    }
    return 0;
}
int main()
{
    HWND hwnd;       
    char Title[1024];
    GetConsoleTitle(Title, 1024); // Узнаем имя окна
    hwnd=FindWindow(NULL, Title); // Узнаем hwnd окна
    HINSTANCE hi=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);
    DialogBox(hi,MAKEINTRESOURCE(ID_DIALOG),NULL,(DLGPROC)fn); // Вызвать диалог ID_DIALOG из ресурса
    system("pause");
    return 0;
}
Однако, у меня такой диалог почему-то не открывается.
ilja123
43 / 43 / 6
Регистрация: 24.12.2009
Сообщений: 382
12.01.2014, 14:30     C++ Консоль. Графика #4
Цитата Сообщение от xoror Посмотреть сообщение
Никак
Это где НИКАК??? В VS 2014?

В старых Builder C++ есть graphics.h Рисуй че хош

Добавлено через 1 минуту
В windows можно рисовать при помощи GDI Получаешь дескриптор консоли И рисуй че хош (winApi почитай)

Добавлено через 12 минут
Самый интересный вариант использовать ASCII Графику Т.е. твоя кнопка может выглядеть так

╔════════╗
║ OK ║
╚════════╝



Добавлено через 2 минуты
Чет с пробелами тут лажа
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
12.01.2014, 14:33     C++ Консоль. Графика #5
Мусаси, можно сделать либо символами, как показал ilja123, либо нарисовать поверх окна линии при помощи того же WINAPI.
Функции: LineTo(), MoveToEx(), GetConsoleHandle()
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
12.01.2014, 14:53     C++ Консоль. Графика #6
Цитата Сообщение от Мусаси Посмотреть сообщение
Как создать в консольном приложении кнопку
Думаю, автор хочет именно создать функциональную кнопку, а не нарисовать ее.
Мусаси
 Аватар для Мусаси
7 / 7 / 0
Регистрация: 07.05.2013
Сообщений: 176
12.01.2014, 16:22  [ТС]     C++ Консоль. Графика #7
Да, нужна функциональная кнопка.

Добавлено через 7 минут
Может её каким-то образом разместить на панели?
ilja123
43 / 43 / 6
Регистрация: 24.12.2009
Сообщений: 382
12.01.2014, 16:22     C++ Консоль. Графика #8
не понял А что мешает из нарисованной кнопки сделать функциональную??
Мусаси
 Аватар для Мусаси
7 / 7 / 0
Регистрация: 07.05.2013
Сообщений: 176
12.01.2014, 16:23  [ТС]     C++ Консоль. Графика #9
ilja123 , а как тогда это сделать?
ilja123
43 / 43 / 6
Регистрация: 24.12.2009
Сообщений: 382
12.01.2014, 16:26     C++ Консоль. Графика #10
Нарисовать кнопку в нужном положении X и Y. Получить значения X и Y курсора мыши. Если была нажата кнопа мыши и положение курсора было в пределах кнопки, то БАЦ!!! ShowInfo();
Мусаси
 Аватар для Мусаси
7 / 7 / 0
Регистрация: 07.05.2013
Сообщений: 176
12.01.2014, 16:28  [ТС]     C++ Консоль. Графика #11
Сейчас попробую
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
12.01.2014, 16:33     C++ Консоль. Графика #12
ilja123,
а что будет с твоей кнопкой когда, в консоли выведется лишняя строка?
уедет вверх
опять перерисовывать?
почему нельзя создать GUI приложения которые для этого и предназначены?
ilja123
43 / 43 / 6
Регистрация: 24.12.2009
Сообщений: 382
12.01.2014, 16:38     C++ Консоль. Графика #13
ValeryS, понятия не имею Я в консоле кнопки не выводил
Мусаси, Пойди на хитрость Не заморачивайся с рисованием кнопки. Напиши в консоле надпись "Хош узнать об авторе Набери ShowInfo и нажми enter" А всю инфу выведи чз MessageBox(0, "Hi", "Я супер крутой прогер-хакер", MB_OKCANCEL);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 16:42     C++ Консоль. Графика
Еще ссылки по теме:

C++ Консоль и C++
C++ Консоль, кубизм, минимализм, как быть? (графика и алгоритмы)
Графика + консоль. Как? C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,042
12.01.2014, 16:42     C++ Консоль. Графика #14
Цитата Сообщение от ilja123 Посмотреть сообщение
Я в консоле кнопки не выводил
но рекомендовал
Цитата Сообщение от ilja123 Посмотреть сообщение
Нарисовать кнопку в нужном положении X и Y. Получить значения X и Y курсора мыши. Если была нажата кнопа мыши и положение курсора было в пределах кнопки, то БАЦ!!! ShowInfo();
Yandex
Объявления
12.01.2014, 16:42     C++ Консоль. Графика
Ответ Создать тему
Опции темы

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