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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.76
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
#1

Как нарисовать точку на экране поверх всех окон? - C++

24.04.2012, 12:10. Просмотров 5978. Ответов 10
Метки нет (Все метки)

Нужно вывести по центру экрана точку поверх всех окон, тоесть не только в моём приложении а вообще поверх всех.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2012, 12:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как нарисовать точку на экране поверх всех окон? (C++):

как сделать консольное окно поверх всех окон - C++
сабж было бы очень удобно дебагить если можно было бы это сделать заранее спасибо

Как сделать что бы программа всегда была "поверх" всех окон - C++
какую команду в скрипте нужно ввести, что бы программа была по верх всех окон? Заранее спасибо

Как? Окно программы - поверх остальных окон. - C++
Как сделать, чтобы окно программы всегда было поверх остальных окон? Спасибо всем, кто ответит!

Как вывести точку и нарисовать квадрат? - C++
Хотел бы узнать как мне в моей ОС на C++/C работать с графикой ибо интернете я нормального описания не нашёл. Как вывести точку и...

Заставить консоль всплывать поверх окон при выводе новой информации - C++
Добрый день, Подскажите как реализовать всплытие консоли поверх всех окон? Пишу программу для тестирования, которая будет рыться...

Класс для хранения координат прямоугольных «окон» на экране - C++
Класс для хранения координат прямоугольных «окон» на экране (хранить координаты левого верхнего и правого нижней вершин x1, y1 и x2, y2)....

10
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
24.04.2012, 12:14 #2
Windows? получить device content (DC) главного окна и поставить на нем точку.
0
MaxxximyM
18 / 2 / 1
Регистрация: 31.08.2011
Сообщений: 132
24.04.2012, 12:31  [ТС] #3
Да Windows, использую Visual Studio 2010.Пока получилось так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include <Windows.h>
#include <WinGDI.h>
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{   
 
    HDC hdc;
    hdc=GetDC(GetDesktopWindow());
    SetPixel(hdc, 500, 500, RGB(255, 255, 255));
    Sleep(10000);
}
Добавлено через 2 минуты
Разобрался, оказывается этот код и рисует поверх окон точку.
0
-=ЮрА=-
Заблокирован
Автор FAQ
24.04.2012, 13:34 #4
Цитата Сообщение от MaxxximyM Посмотреть сообщение
Разобрался, оказывается этот код и рисует поверх окон точку.
- по секрету скажу что код ниже кроме красной точки рисует ещё и белый прямоугольник 70х160
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
 
int main()
{
    HDC hDC = GetDC(NULL);
    if(!hDC)
        MessageBox(NULL,"Error retriving graphical context",NULL,MB_OK);
    else
    {
        SetPixel(hDC,20,30,RGB(255,0,0));
        Rectangle(hDC,30,40,100,200);
    }
    system("pause");
    return 0;
}
Добавлено через 3 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
HDC hDC = GetDC(NULL);
- получение графического контекста окна NULL означает что нас интересует рабочий стол, если бы вписал вместо NULL GetForegroundWindow() то отрисовка произошла бы в текущем активном окне системы. Далее по коду думаю всё понятно
0
Leax
180 / 179 / 4
Регистрация: 07.11.2010
Сообщений: 477
27.05.2012, 16:00 #5
Только что установил VS2008 Express (C++ ), при вставке вышеуказанного кода в консольный проект выдает:
1>------ Построение начато: проект: Test1, Конфигурация: Debug Win32 ------
1>Компиляция...
1>Test1.cpp
1>.\Test1.cpp(1) : warning C4627: #include <windows.h>: пропущен при поиске использования предкомпилированного заголовка
1> Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
1>.\Test1.cpp(16) : fatal error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник.
1>Журнал построения был сохранен в "file://c:\Users\Alex\Documents\Visual Studio 2008\Projects\Test1\Test1\Debug\BuildLog.htm"
1>Test1 - ошибок 1, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
При вставке директивы #include "stdafx.h" второй строкой - ошибок вываливается ещё больше.
Подскажите, пожалуйста, где исправить, если не долго

З.Ы.: раньше с C++ не работал, только с C# ...
0
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 16:13 #6
Вот попробуй это, у меня все работает идеально.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// thread557087.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <windows.h>
 
int main()
{
    HDC hDC = GetDC(NULL);
    if(!hDC)
        MessageBox(NULL,(LPCWSTR)"Error retriving graphical context",NULL,MB_OK);
    else
    {
        SetPixel(hDC,20,30,RGB(255,0,0));
        Rectangle(hDC,30,40,100,200);
    }
    system("pause");
    return 0;
}
1
Leax
180 / 179 / 4
Регистрация: 07.11.2010
Сообщений: 477
27.05.2012, 16:16 #7
Странно... так еще хуже (
1>------ Построение начато: проект: Test1, Конфигурация: Debug Win32 ------
1>Компиляция...
1>Test1.cpp
1>Компоновка...
1>Test1.obj : error LNK2028: ссылка на неразрешенную лексему (0A000015) "extern "C" int __stdcall Rectangle(struct HDC__ *,int,int,int,int)" (?Rectangle@@$$J220YGHPAUHDC__@@HHHH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>Test1.obj : error LNK2028: ссылка на неразрешенную лексему (0A000016) "extern "C" unsigned long __stdcall SetPixel(struct HDC__ *,int,int,unsigned long)" (?SetPixel@@$$J216YGKPAUHDC__@@HHK@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>Test1.obj : error LNK2028: ссылка на неразрешенную лексему (0A000017) "extern "C" struct HDC__ * __stdcall GetDC(struct HWND__ *)" (?GetDC@@$$J14YGPAUHDC__@@PAUHWND__@@@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>Test1.obj : error LNK2028: ссылка на неразрешенную лексему (0A00001E) "extern "C" int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z) в функции "extern "C" int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)
1>Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z) в функции "extern "C" int __cdecl MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBox@@$$J0YAHPAUHWND__@@PB_W1I@Z)
1>Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" int __stdcall Rectangle(struct HDC__ *,int,int,int,int)" (?Rectangle@@$$J220YGHPAUHDC__@@HHHH@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" unsigned long __stdcall SetPixel(struct HDC__ *,int,int,unsigned long)" (?SetPixel@@$$J216YGKPAUHDC__@@HHK@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>Test1.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" struct HDC__ * __stdcall GetDC(struct HWND__ *)" (?GetDC@@$$J14YGPAUHDC__@@PAUHWND__@@@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>C:\Users\Alex\Documents\Visual Studio 2008\Projects\Test1\Debug\Test1.exe : fatal error LNK1120: 8 неразрешенных внешних элементов
1>Журнал построения был сохранен в "file://c:\Users\Alex\Documents\Visual Studio 2008\Projects\Test1\Test1\Debug\BuildLog.htm"
1>Test1 - ошибок 9, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 16:20 #8
Ты создал обычный консольный проект и вылетают такие ошибки ??

П.С. у меня вылетало что-то подобное когда я создав консольный проект но брал в неё dll library - то есть роботу с библиотеками.
0
Leax
180 / 179 / 4
Регистрация: 07.11.2010
Сообщений: 477
27.05.2012, 16:28 #9
Цитата Сообщение от IceSqueez Посмотреть сообщение
Ты создал обычный консольный проект и вылетают такие ошибки ??

П.С. у меня вылетало что-то подобное когда я создав консольный проект но брал в неё dll library - то есть роботу с библиотеками.
Я создал консольное приложение CLR и заменил появившийся код вашим кодом.
Может в настройках нужно еще что-то подкручивать?
0
IceSqueez
Java, C# - Expert
67 / 67 / 2
Регистрация: 09.08.2011
Сообщений: 284
27.05.2012, 16:31 #10
В этом то и проблема, данный код написан не для CLR проектов, а обычный Windows Console Application. CLR работает по другому.

П.С. Кстати он более похож на C# Хотя и С++
1
Leax
180 / 179 / 4
Регистрация: 07.11.2010
Сообщений: 477
27.05.2012, 16:40 #11
Цитата Сообщение от IceSqueez Посмотреть сообщение
В этом то и проблема, данный код написан не для CLR проектов, а обычный Windows Console Application. CLR работает по другому.

П.С. Кстати он более похож на C# Хотя и С++
Точно, спасибо! ваш код работает
0
27.05.2012, 16:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2012, 16:40
Привет! Вот еще темы с ответами:

Нарисовать на экране шестиугольник C++ - C++
собственно дело вот в чём. есть задача, нарисовать жёлтый шестиугольник с надписью внутри &quot;привет!&quot; никаких представлений как её...

Нарисовать на экране 12 заполненных параллелограммов - C++
Помогите пожалуйста

Компьютерная графика: нарисовать на экране куб - C++
нужно нарисовать куб на экране, а для этого преобразовать 3д координаты в 2д помогите, пожалуйста, не могу понять как это реализовать на...

Звук поверх всех остальных - C++
Добрый вечер форумчане. Возник вопрос как запустить звук , чтоб он заглушил все звуки , и слышно было только его ! Ем .. по...


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

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

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