Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
 Аватар для Efiros
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 9
1

Изменить цвет символов на следующий в палитре цветов при нажатии левой кнопки мыши

05.05.2012, 21:59. Показов 1770. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Задание: Изменить цвет символов на следующий в палитре цветов при нажатии левой кнопки мыши. Выход из программы – одновременное нажатие обеих кнопок.
Надо написать на "Си"(MinGW).
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
#include <stdio.h>
#include <windows.h>
int main(int argc, char* argv[])
{
   HANDLE hstdout,hstdin;
   char prompt[]="Working with mouse";
   char bye[]="\nGood Bye!!!";
   INPUT_RECORD charinfo;
   COORD pos;
   WORD attr=0x2e;
   DWORD actlen;
 
   hstdout=GetStdHandle(STD_OUTPUT_HANDLE);
   if(hstdout==INVALID_HANDLE_VALUE)
   {printf("Error GetStdHandle\n");exit(-1);}
 
   hstdin=GetStdHandle(STD_INPUT_HANDLE);
   if(hstdin==INVALID_HANDLE_VALUE)
   {printf("Error GetStdHandle\n");exit(-1);}
 
   pos.X=20;pos.Y=9;
   SetConsoleCursorPosition(hstdout,pos);
   SetConsoleTextAttribute(hstdout,attr);
   WriteConsole(hstdout,prompt,sizeof(prompt),&actlen,NULL);
 
   do
   {
      ReadConsoleInput(hstdin,&charinfo,1,&actlen);
      if(charinfo.EventType==MOUSE_EVENT && (charinfo.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) && (charinfo.Event.MouseEvent.dwMousePosition.Y == pos.Y) &&
      (charinfo.Event.MouseEvent.dwMousePosition.X>pos.X) && (charinfo.Event.MouseEvent.dwMousePosition.X<(pos.X+strlen(prompt))))
      {
         pos.X=20;pos.Y=9;
         SetConsoleCursorPosition(hstdout,pos);
         SetConsoleTextAttribute(hstdout,++attr);
         WriteConsole(hstdout,prompt,sizeof(prompt),&actlen,NULL);
      }
   }
   while(!(charinfo.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED && charinfo.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED));
   WriteConsoleA(hstdout,bye,sizeof(bye),&actlen,NULL);
//   getchar();
}
Она без проблем компилируется и запускается, но не выполняет ни одну функцию из задания.
*Изначально программа была на "Borland C".
Не откажусь от помощи!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2012, 21:59
Ответы с готовыми решениями:

Нажатием левой кнопки мыши выбирать и запоминать цвет, при нажатии правой кнопки мыши - устанавливать выбранный цвет
Люди добрые, киньте какой-нибудь рабочий .asm для masm, похожий на решение следующей задачи, а то мне год надо зубрить чтобы написать...

При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квад
При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квадрат. При повторном...

При нажатии кнопки мыши изменить цвет строки под курсором
Ассемблер. При нажатии кнопки мыши изменить цвет строки под курсором. Если лень писать код, дайте ссылку где можно почитать об...

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33091 / 21388 / 8216
Регистрация: 22.10.2011
Сообщений: 36,715
Записей в блоге: 9
06.05.2012, 19:38 2
Нормально все работает, компилировалось GCC (в Code::Blocks). Создал обычное консольное приложение, скопировал туда твой текст, собрал и запустил.
0
 Аватар для Efiros
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 9
06.05.2012, 23:11  [ТС] 3
UI, крайне странно у меня не выходит, а вы можете скомпилировать и отправить мне ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33091 / 21388 / 8216
Регистрация: 22.10.2011
Сообщений: 36,715
Записей в блоге: 9
06.05.2012, 23:33 4
Могу. Вот EXE-шник:
Вложения
Тип файла: zip cn_win.zip (12.7 Кб, 19 просмотров)
0
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
06.05.2012, 23:47 5
ХЗ, ноль по фазе, ох уж эта консоль.

__________________
XP SP3
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33091 / 21388 / 8216
Регистрация: 22.10.2011
Сообщений: 36,715
Записей в блоге: 9
07.05.2012, 00:45 6
Цитата Сообщение от Digit@ll Посмотреть сообщение
XP SP3
Аналогично: Однако, работает
1
 Аватар для Efiros
0 / 0 / 0
Регистрация: 04.05.2012
Сообщений: 9
07.05.2012, 10:02  [ТС] 7
Ммм... так и не хочет у меня запускаться нормально
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2012, 10:02
Помогаю со студенческими работами здесь

Тетрадь, открывающаяся при нажатии левой кнопки мыши
Например, у меня лежит тетрадь на столе и при нажатии на лкм он открывается, как это сделать?

Не активируются окна при нажатии левой кнопки мыши
Проблема такая. при открытии 2-х окон невозможно неакитивное окно выделить курсором, только при нажатии на него правой кнопки или после...

Переключение видеостраниц при нажатии левой кнопки мыши
Доброе время суток, помогите в разработке следующей программы, заранее спасибо: 1. Заполнить i-ю страницу видеопамяти символом xi (x0...

Переключение видеостраниц при нажатии левой кнопки мыши
Заполнить страницу видеопамяти символом xi ((x0 =’a’, x1 =’b’ и тд) с разными атрибутами на каждой странице. Обеспечить переключение...

При нажатии левой кнопки мыши нарисовать белую точку
Вот задание на курсовую работу: В графическом режиме 320 на 200 точек на 256 цветов, обрабатывать сообщения от мышки (прерывание INT...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class - средства для работы с неизменяемыми структурами данных, каждое из которых предлагает свой уникальный подход к решению этой задачи. История их появления весьма. . .
Создание производительны­­х API с Java и gRPC
Wired 04.03.2025
В разработке производительность и масштабируемость микросервисных приложений играют ключевую роль. Традиционные REST API, несмотря на свою популярность и простоту, не всегда способны обеспечить. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 знаменует собой значительный скачок в развитии Java, внося фундаментальные улучшения в производительность, безопасность и удобство разработки. Релиз включает множество революционых изменений,. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Современная блокчейн-разработка на Java предоставляет разработчикам широкий спектр возможностей. В отличие от Solidity, который ограничен экосистемой Ethereum, Java позволяет создавать как. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru