Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
1 | |
Получение дескриптора консольного окна07.01.2014, 23:31. Показов 16278. Ответов 16
Метки нет (Все метки)
Привет всем еще раз!Хочу заморочиться рисовать в консоле с помощью winapi,но перед этим мне нужно хотя бы получить дескриптор окна консоли,что у меня и не выходит(
Получить дескриптор я пробую с помощью функции FindWindow(...),куда место первого параметра(название класса окна) я передаю NULL, а место второго параметра(заголовок самой программы) я передаю заголовок окна консоли,полученный с помощью функции GetConsoleTitle(...).Сколько не пробовал,дескриптор получить я не могу(Пробовал и изменить заголовок консоли с помощью функции SetConsoleTitle(...) и поместить место второго параметра новый заголовок программы...все равно ничего не выходит( Помогите пожалуйста,в чем проблема может возникать?
0
|
07.01.2014, 23:31 | |
Ответы с готовыми решениями:
16
Получение дескриптора экранного буфера консоли дочернего процесса Захват дескриптора (handle) чужого окна Получение списка пользователей (консольного и rdp-сеансов) Управлять событиями окна консольного приложения |
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
07.01.2014, 23:35 | 2 |
0
|
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
|
||||||
08.01.2014, 01:09 | 3 | |||||
Вот этой функцией получаю дескриптор консоли.
1
|
Неэпический
|
|
08.01.2014, 02:20 | 4 |
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
09.01.2014, 00:00 [ТС] | 5 |
Как не пробовал вашими методами,всё тоже самое...дескриптор не получаю.Он в hwnd мой помешает вот такую хрень:
0х001202ce{unused=???} <Unable to read memory> Как не пробую,ничего не получается.Работаю в VS C++ ,создаю проект как консольное приложение...если это поможет решить проблему
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
09.01.2014, 00:09 | 7 | |||||
вот попробуйте зажмите левую мышку и поелозте по окну:
1
|
107 / 107 / 21
Регистрация: 29.08.2012
Сообщений: 453
|
|
09.01.2014, 00:23 | 9 |
Bretbas, это та функция, которую я скинул?
У меня она работает на ура.
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
09.01.2014, 00:25 | 10 |
да нормально там все елозится
это я тут на форуме кому-то демку писал. в качестве демонстрации работы - пойдет
0
|
Неэпический
|
|
09.01.2014, 00:27 | 11 |
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
09.01.2014, 00:34 | 12 |
после 10000 тысяч GDI объектов перестало рисовать. я думал там 16k под это дело дается.
ну с устранением утечек автор думаю справится
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
09.01.2014, 23:07 [ТС] | 13 |
Не работает е-мое...скиньте ваш проект пожалуйста...может так зафачит.Код не могу скинуть,так как сижу с мобильного телефона,на компе интернета нет
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
||||||
10.01.2014, 23:54 [ТС] | 14 | |||||
Короче заработало,но как то странно...дескриптор я получаю стандартной функцией GetConsoleWindow(),ну в прочем это не важно...но вот дескриптор контекста устройства HDC dc я не могу получить функцией BeginPaint(...) почему то,могу получить только с помощью GetDC(...).И еще...при нарисование чего либо,мне приходится рисовать "два раза",иначе на экране ничего нет!Вот и примеру код:
Не подскажите почему так происходит?
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
12.01.2014, 01:00 [ТС] | 15 |
Ммм?
Добавлено через 1 минуту Ну так что?)
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
12.01.2014, 01:07 | 16 |
ну хз что там. консольное окно ведь не ожидает что на нем рисовать будут. может
там у него срабатывает евент, который заставляет родную процедуру окна перерисовывать его, которая и затирает все, что было нелегально нарисовано. можно свернуть развернуть окно и тоже все затрется, даже если вы сто раз выведите текст. чтобы нарисованное держалось - нужны какие-то другие методы. либо заменить оконную процедуру, либо в цикле непрерывно перерисовыывать одно и то же.
0
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
13.01.2014, 03:01 [ТС] | 17 |
Мне кажется это бред...ибо двух итераций цикла достаточно чтобы текст был нарисован в окне...если бы окно постоянно затиралось,тогда бы и при этих двух итерациях я ничего не увидел и пришлось бы как вы сказали делать бесконечный цикл рисования
0
|
13.01.2014, 03:01 | |
13.01.2014, 03:01 | |
Помогаю со студенческими работами здесь
17
Управлять событиями окна консольного приложения Перемещение окна и получение координат центра окна Запуск программы в фоне (без консольного окна) Получение данных из окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |