Вывести текст рядом с указателем мышки
От: Artem_N  
Дата: 07.12.05 12:10
Оценка:
Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor?
Re: ToolTip не подойдет? (-)
От: Аноним  
Дата: 07.12.05 12:25
Оценка:
Re: Вывести текст рядом с указателем мышки
От: Аноним  
Дата: 07.12.05 12:54
Оценка:
Здравствуйте, Artem_N, Вы писали:

A_N>Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor?


Если в GDI, то попробуй функцию TextOut() при обработке сообщения WM_MOUSEMOVE.
Re[2]: ToolTip не подойдет? (-)
От: Artem_N  
Дата: 07.12.05 13:39
Оценка:
Подойдёт, но это слишком просто

Есть одна проблема. Код в событии MouseMove для mainPanel следующий (C#):

===
Cursor _Cursor = Cursors.Default;
...
toolTipCoo.SetToolTip( mainPanel, pt.Y.ToString() );
_Cursor = Cursors.Cross;
...
this.Cursor = _Cursor;
===

Подсказка появляется. Но при перемещении указателя происходит постоянная смена курсора со стрелки на крестик. В чём косяк -- я не понимаю...
Re[2]: Вывести текст рядом с указателем мышки
От: Artem_N  
Дата: 07.12.05 13:41
Оценка:
А>Если в GDI, то попробуй функцию TextOut() при обработке сообщения WM_MOUSEMOVE.
Извиняюсь, сразу не указал. Пишу на C#, поэтому GDI+.
Вывести текст рядом с указателем мышки
От: Аноним  
Дата: 07.12.05 13:43
Оценка:
Если задача похожа на задачу вывода картинки рядом с указателем при перетаскивании какого-либо объекта, то это делается с помощью LayeredWindows.
http://contest2005.gotdotnet.ru/Request/Tools/UtilitiesLib/174003.aspx
Так же обсуждение здесь:
http://www.gotdotnet.ru/Forums/Windows/118870.aspx

Хотя, может быть можно и курсор поменять.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: ToolTip не подойдет? (-)
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 07.12.05 14:12
Оценка:
Здравствуйте, Artem_N, Вы писали:

A_N>Подойдёт, но это слишком просто

Каждый Буратино сам себе дятел (с)

A_N>Есть одна проблема. Код в событии MouseMove для mainPanel следующий (C#):


A_N>===

A_N>Cursor _Cursor = Cursors.Default;
A_N>...
A_N>toolTipCoo.SetToolTip( mainPanel, pt.Y.ToString() );
A_N>_Cursor = Cursors.Cross;
A_N>...
A_N>this.Cursor = _Cursor;
A_N>===

A_N>Подсказка появляется. Но при перемещении указателя происходит постоянная смена курсора со стрелки на крестик. В чём косяк -- я не понимаю...

Дык ты сам его и меняешь в строчке следующей за установкой тултипа
Re[4]: ToolTip не подойдет? (-)
От: Artem_N  
Дата: 07.12.05 14:28
Оценка:
A_N>>Подойдёт, но это слишком просто
W>Каждый Буратино сам себе дятел (с)
Мы не ищем лёгких путей (с)

A_N>>Есть одна проблема. Код в событии MouseMove для mainPanel следующий (C#):

A_N>>Cursor _Cursor = Cursors.Default;
A_N>>...
A_N>>toolTipCoo.SetToolTip( mainPanel, pt.Y.ToString() );
A_N>>_Cursor = Cursors.Cross;

A_N>>Подсказка появляется. Но при перемещении указателя происходит постоянная смена курсора со стрелки на крестик. В чём косяк -- я не понимаю...

W>Дык ты сам его и меняешь в строчке следующей за установкой тултипа
Ага, так и задумано. Суть в том, что если закомментировать SetToolTip, то изменения мышинного курсора туда-сюда не происходит.
Re: Вывести текст рядом с указателем мышки
От: Vitaton Россия  
Дата: 08.12.05 06:19
Оценка:
Здравствуйте, Artem_N, Вы писали:

A_N>Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor?


Вот туповатый метод, который я использовал для одного инострнного клиента.
Если датите мыло вышлю коды.

This is one of the variants of the similar task’s solving.
The basic idea – to create for cursor of the special form (CursorForm) with label (label1).
For CursorForm you must set several properties
ControlBox = false;
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
ShowInTaskbar = false;
TopMost = true;
TransparencyKey = System.Drawing.SystemColors.Control;
BackColor = System.Drawing.SystemColors.Control;
For label1 you must set
label1.AutoSize = true;
label1.Visible = false;
label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
label1.BackColor = System.Drawing.SystemColors.Control;

It is important cursorForm.BackColor = cursorForm.TransparencyKey = label1.BackColor.

In the test form (Form1) you must add
private System.Windows.Forms.Label label1; (source of drag&drop);
private System.Windows.Forms.Label label2; (receiver of drag&drop);
private CursorForm cursorForm; (object of our special form (CursorForm);
and events for implementation of drag&drop label1_MouseDown, label1_MouseMove, label1_MouseUp (see comments in Form1.cs).

Additionally, you can control opacity of text in cursor (set property cursorForm.Opacity).

Another variant to solve this task which I known (theoretically) get image (Bitmap) of source drag&drop object; set visible only pixels of text, using MakeTransparent method; create new Cursor’s object from Bitmap and set this cursor. But, I can get image of object (control), using only unmanaged code. It isn’t good and more difficult.

Best regards,
Vitaly.
Useless lamer
Re[2]: Вывести текст рядом с указателем мышки
От: Artem_N  
Дата: 08.12.05 09:31
Оценка:
Здравствуйте, Vitaton, Вы писали:

A_N>>Как правильно сделать? Динмаически формировать картинку и подсовывать её this.Cursor?

V>Вот туповатый метод, который я использовал для одного инострнного клиента.
V>Если датите мыло вышлю коды.
Нижеуказанный вами способ реализовал. Работает Оригинально, мне такая идея в голову не приходила. Но слишком уж жёстко заводить новую форму для этого. Попробую сделать перемещаемый label в основной форме.
Спасибо за идею.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.