
Народ подскажите ламеру, как это сделать на .NET?
Viper писал(а):WndProc переопределить, например.
Public Class MyTextBox
Inherits TextBox
Private Const WM_PAINT = &HF
Public Sub New()
'И даже эта писанина не помогает
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_PAINT
'Сюда не ходит :(
Debug.Print("PAINT")
End Select
MyBase.WndProc(m)
End Sub
End Class
Private Const WM_PAINT As Long = &HF
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_PAINT
Debug.Print("WM_PAINT")
End Select
MyBase.WndProc(m)
End Sub
End Class
Nord777 писал(а):Scarabey ты лучше скажи, КАК ИМЕННО ты хочешь надругаться над бедным текстбоксом?Конечная цель?
Viper писал(а):ScarabeyА почему у меня этот код успешно срабатывает? И да, а что же такое надо над TextBox то сделать?
- Код: Выделить всё
Private Const WM_PAINT As Long = &HF
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
…
End Sub
End Class
Nord777 писал(а):Тогда непонятно зачем тебе перекрывать OnPaint.
RichTextBox позволяет раскрашивать текст.
НаверноБлин, я сегодня наверное перекурил MSDN'а, и прочей документации…
Nord777 писал(а):Кто мешает тебе обрабатывать не только WM_PAINT, а еще и например WM_CHAR....
Красота - понятие растяжимое. То есть ты считаешь, что при нажатии кнопки на клавиатуре, винда должна посылать окну WM_PAINT вместо WM_CHAR(WM_KEYDOWN)? Или сразу оба сообщения? И по твоему мнению так красивее и логичнее?Это раз, а во вторых это не очень красиво...
Nord777 писал(а):Красота - понятие растяжимое. То есть ты считаешь, что при нажатии кнопки на клавиатуре, винда должна посылать окну WM_PAINT вместо WM_CHAR(WM_KEYDOWN)? Или сразу оба сообщения? И по твоему мнению так красивее и логичнее?
Да тут вобщем то и писать ничего не надо. Хоть раз пользовался утилитой Microsoft Spy++ ? Вот запусти её и посмотри кто кому и что посылает.Как ни странно, но посылает достаточно написать это дело на C, ASM или тупо субклассировать на VB6 и сразу все работает
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7