Как делать попапы с форматированной контекстной справкой?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 14.07.2007 (Сб) 11:19

Тогда видимый текст-бокс надо сабклассить и не пускать лишние сообщения. Т.е. недопускать, чтобы юзер не мог выделить, чтобы курсор у него не менялся на I-beam и тд. и тп.

GSerg
Ага, есть, MSDN Library Visual Studio 6.0 называется.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.07.2007 (Сб) 11:38

Ага, именно из неё я тебе текст и скопировал.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 14.07.2007 (Сб) 14:27

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


Код: Выделить всё
Private Sub RichTextBox1_GotFocus()
Command1.SetFocus
End Sub


чтобы курсор у него не менялся на I-beam


Код: Выделить всё
MousePointer=1

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 14.07.2007 (Сб) 20:22

nekeda

Действительно,
Код: Выделить всё
VERSION 5.00
Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3090
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3090
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command1
      Caption         =   "Command1"
      Height          =   255
      Left            =   480
      TabIndex        =   1
      Top             =   240
      Width           =   495
   End
   Begin RichTextLib.RichTextBox RichTextBox1
      Height          =   2055
      Left            =   840
      TabIndex        =   0
      Top             =   600
      Width           =   3375
      _ExtentX        =   5953
      _ExtentY        =   3625
      _Version        =   393217
      Enabled         =   -1  'True
      MousePointer    =   1
      TextRTF         =   $"Form1.frx":0000
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub RichTextBox1_GotFocus()
    Command1.SetFocus
End Sub

лучше чем
Код: Выделить всё
VERSION 5.00
Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0"; "RICHTX32.OCX"
Begin VB.Form Form1
   Caption         =   "Form1"
   ClientHeight    =   3090
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   4680
   LinkTopic       =   "Form1"
   ScaleHeight     =   3090
   ScaleWidth      =   4680
   StartUpPosition =   3  'Windows Default
   Begin RichTextLib.RichTextBox RichTextBox1
      Height          =   1575
      Left            =   -3120
      TabIndex        =   0
      Top             =   -1560
      Width           =   3135
      _ExtentX        =   5530
      _ExtentY        =   2778
      _Version        =   393217
      Enabled         =   -1  'True
      MousePointer    =   1
      TextRTF         =   $"Form1.frx":0000
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form_Paint()
    SendMessage RichTextBox1.hwnd, WM_PAINT, Me.hDC, 0
End Sub



Даже если наплевать на это.


Возражение Тёмыча:

Предлагаешь мне прятать мой текстбокс за формой??

Да! Действительно! Спратять ричэдит за пределами формы - это стрёмно. А спрятать там лишний, нафиг никому не нужный Command1 - нормально. Никто не возражает. Никто!

И даже если наплевать на это, то, nekeda, при использовании твоего метода - курсор всё равно кратковременно появляется.

Ну и ладно. Пусть Тёмыч сам разбирается, я за него не переживаю - он ерунду не выберет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.07.2007 (Сб) 20:36

Тут мне сбоку подсказывают, что на x64 не работают 16-битные проги, так что от winhelp-а всё равно придётся отказаться, и писать что-то своё :-/
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 14.07.2007 (Сб) 21:12

Хакер
Чтобы не быть голословным: Правильный MSDN писал(а):

WM_PAINT
hdc = (HDC) wParam; // the device context to draw in

ИМХО, это относится к Windows CE. Проверь, просто в описании для этой оси такое есть, а для настольной винды найти не получается.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 14.07.2007 (Сб) 21:33

Меня, например, это мало интересует. Никогда не писал для неё и не буду. И уверен, что tyomitch требует решение тоже не для неё.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 14.07.2007 (Сб) 23:14

Хакер
Поиск выдаёт результаты для всего подряд.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.07.2007 (Сб) 23:53

Вниманию публики предлагается экспериментальная RTF-рендерилка.
Когда не лень будет заполнять все нужные для этого формуляры, запощу это в кирпичи.
Вложения
richrend.rar
(3.93 Кб) Скачиваний: 95
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.07.2007 (Вс) 0:34

tyomitch
Код очень хороший(как и всё остальное), но каждый раз грузить и выгружать библу, ИМХО, медленно
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.08.2007 (Сб) 14:11

Дописал своё окно-попап, целиком с форматированием и с сетчатой тенью, без регионов и без альфы -- точь-в-точь как в оригинале.
Правда, на Delphi, но может и так кому-нибудь пригодится.
Вложения
frm_Help.rar
Ах вы, тени, мои тени, тени новые мои!
Тени новые, виндовые, решётчатые!
(2.85 Кб) Скачиваний: 72
Изображение

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 95

    TopList