Что такое необработанный код текстового поля - PullRequest
5 голосов
/ 03 декабря 2010

Может быть, я могу получить некоторые отрицательные моменты по этому вопросу, но на самом деле этот вопрос ошеломляет меня в последние несколько дней, что является основным / необработанным кодом за текстовым полем (или другими такими элементами управления).

Я имею в виду, что я понимаю, что мы можем наследовать класс textbox и вносить изменения, мы создаем его объект и используем его.

но хочет знать, как этот класс создает текстовое поле (дизайн, который позволяет нам вводить текст) (тот же запрос для других компонентов), это код языка C, который генерирует его с помощью CG (компьютерная графика) программирование или любая другая вещь.

Эксперты, пожалуйста, разрешите мое любопытство.

Спасибо

Ответы [ 3 ]

7 голосов
/ 03 декабря 2010

Windows предоставляет несколько основных API для рисования на экране. Вы можете рисовать пиксели, линии, прямоугольники и более сложные геометрические фигуры. Есть также API для рисования текста. Другие API позволяют реагировать на ввод пользователя, например, движение мыши и щелчки и ввод с клавиатуры.

Из этих основных API вы можете создать свое собственное текстовое поле, рисуя точные пиксели того, как текстовое поле должно выглядеть и реагировать на ввод пользователя. Однако в Windows есть встроенная концепция текстового поля. Это текстовое поле имеет стандартный внешний вид, а также интегрировано с такими понятиями пользовательского интерфейса, как фокус, порядок вкладок, буфер обмена и курсор. Но за кулисами Windows использует низкоуровневые API-функции для рисования на экране и реагирования на ввод пользователя.

Когда вы создаете TextBox в Windows Forms, он фактически создает и оборачивает стандартную Windows Edit control . Этот элемент управления рисуется с использованием GDI. Однако другие модели программирования, такие как WPF, могут создавать элементы управления TextBox , которые выглядят как обычные текстовые поля, но используют пользовательскую реализацию, предоставленную WPF, и отрисовываются с использованием DirectX.

4 голосов
/ 03 декабря 2010

Используйте http://www.red -gate.com / products / отражатель / и убедитесь сами ...

3 голосов
/ 03 декабря 2010

Вот что я думаю делать:

Необработанный код, стоящий за TextBox или любым другим Control, использует Windows API, который отвечает за отрисовку этих элементов управления и предоставляет Handles этих элементов управления для дальнейшего использования.

Windows использует различные методы для рисования своего пользовательского интерфейса, например GDI, GDI+, а иногда DirectX. Я могу ошибаться, и могут быть некоторые другие технологии, которые я забыл упомянуть.

Эти элементы управления используют WinProc каждого окна для получения Input Notification и других обратных вызовов, которые уведомляют эти элементы управления при нажатии, вводе или, например, изменении размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...