Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
256 / 227 / 56
Регистрация: 03.02.2011
Сообщений: 1,934
Записей в блоге: 1
1
.NET 4.x

Можно ли вставить свой собственный контрол в чужое окно, зная его handle?

28.04.2014, 15:10. Просмотров 1189. Ответов 5
Метки нет (Все метки)


Можно ли вставить свой собственный контрол в чужое окно, если я знаю его handle?
К примеру, прилепить лейбл рядом с "чужим" текстбоксом. Контрол нужен лишь для отображения информации.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2014, 15:10
Ответы с готовыми решениями:

Можно ли запретить запуск окна, зная его Handle
Собственно вот и вопрос да и еще если можно вообще запретить запуск этой проги или её хранение, или...

Добавить в чужое окно контрол
Привет. Как добавить свой контрол в чужое окно? Что то наподобие HWND hHack=FindWindow(NULL,...

Как выбрать окно, если его handle не совпадает с handle процесса?
Добрый день! Задача на первый взгляд довольно простая: выбрать окно программы, переместить его в...

Получить информацию об окне, зная его handle
Подскажите, как зная хендл окна получить о нем информацию(есть ли в этом окне кнопки, сколько, их...

5
816 / 715 / 424
Регистрация: 09.04.2014
Сообщений: 1,715
28.04.2014, 17:15 2
C#
1
label.Parent=Control.FromHandle(handle)
0
256 / 227 / 56
Регистрация: 03.02.2011
Сообщений: 1,934
Записей в блоге: 1
29.04.2014, 07:26  [ТС] 3
Не работает.
Попробовал на обычных 2-х окнах, созданных в разных сессиях VS. Parent = null.
0
816 / 715 / 424
Регистрация: 09.04.2014
Сообщений: 1,715
29.04.2014, 14:15 4
Лучший ответ Сообщение было отмечено skilllab как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Runtime.InteropServices;
...........
[DllImport("user32.dll")]
private static extern IntPtr SetParent(
        IntPtr hWndChild,      // handle to window
        IntPtr hWndNewParent   // new parent window
        );
 
void AddLableToWindow(IntPtr hWnd)
        {
            Label lb = new Label();
            lb.Text = "text";
            SetParent(lb.Handle, hWnd);
        }
так работает, проверял
1
256 / 227 / 56
Регистрация: 03.02.2011
Сообщений: 1,934
Записей в блоге: 1
29.04.2014, 14:49  [ТС] 5
nedel, работает! )))
А можно теперь как-то отвязать этот лейбл от чужого окна?
Типа он там высветился отобразил информацию и по какому либо событию (к примеру по клику батона на изначальной форме) убрался.

Добавлено через 52 секунды
Я понимаю, что он исчезнет при закрытии формы, но всё же.
0
816 / 715 / 424
Регистрация: 09.04.2014
Сообщений: 1,715
29.04.2014, 14:55 6
А можно теперь как-то отвязать этот лейбл от чужого окна?
Вызовите label.Dispose()
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2014, 14:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Изменить стиль окна, зная его handle?
Можно ли с помощью Winapi функций изменить стиль окна, зная handle этого окна? например послав...

Как получить данные из TVirtualStringTree, зная его Handle?
Как прочитать данные первой колонки из TVirtualStringTree, зная его Handle. Для ListView делал так...

Как взять текст из окна, зная его Handle?
К примеру я знаю хэндл (hWnd) текстового окна в любой запущенной программе. Как мне взять из неё...

Отсылка сообщения окну, зная его Handle (PostMessage)
Не знаю, по адресу ли я обратился :( В общем, в виндовозовской библиотеке "user32.dll" есть...


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

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

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