Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [wx] Курсор мыши и курсор ввода в wxTextCtrl


Автор: Static 19.12.2008, 11:24
Сделал wxTextCtrl серого цвета (так надо  smile ) Теперь...хм... теперь в нем не видно ни курсора ввода (каретки), ни курсора мыши (который преобразуется на его фоне в beam cursor). Точнее, видно, конечно, но очень плохо. Что-то ничего дельного по этому вопросу не нашел.
Пробовал так:
для мыши
1:
Код

wxCursor *cur;
cur=new wxCursor(_("cross_r.cur"), wxBITMAP_TYPE_CUR_RESOURCE); //попытка загрузки из файлика
TextCtrl1->SetCursor(cur);

никакого видимого эффекта

2:
Код

TextCtrl1->SetCursor(wxCURSOR_PENCIL); //так работает, но мне не помогает :) 

потому что загружается курсор из текущей темы, а его точно так же не видно. Всмысле, пенсил, конечно, видно, но мне нужен ibeam smile

для самого контрола - пытался установить каретку... что-то тоже никак. Есть способ покрасить курсор ввода?
Идеи, замечания? буду признателен.

Автор: Static 19.12.2008, 16:41
хм... и пример http://docs.wxwidgets.org/stable/wx_wxcursor.html#wxcursor не работает... почему-то... разбираюсь...

Автор: Static 19.12.2008, 17:39
Так, с мышью разобрался.

Код

wxImage *img=new wxImage(_("cursor.bmp"), wxBITMAP_TYPE_BMP, -1);

img->SetMaskColour(0, 255, 0); //в файлике - зеленым залито все, что должно быть прозрачным
img->SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 5);
img->SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 10);

wxCursor cur=wxCursor(*img);
TextCtrl1->SetCursor(cur);

delete img;


вопрос по поводу цвета каретки в TextCtrl остается открытым smile
самое действенное, что я пока придумал - выделять цветом последний символ из набираемых... но это ж вобще... :(

Автор: t_rex 19.12.2008, 20:53
Так а чем wxCaret не устраивает? у wxWindow есть SetCaret().

Автор: Static 19.12.2008, 21:34
не устраивает он меня тем, что его на сером фоне не видно smile

а в мане к wx2.8.9 написано, что только собираюцца ввести поддержку битмапа как каретки. А сейчас, как я понимаю, цвет ей так просто не задать.

Автор: t_rex 19.12.2008, 23:47
Хм.. если "только собираются" и в коде уже есть какие-то поползновения в сторону решения этой проблемы, то, возможно ты бы сам доделал чего тебе надо и запостил бы патч smile и прославился как человек, внесший свою лепту в развитие библиотеки на пути к зохвату мира.

А если серьезно, то мы щаз например недостающий функционал для wxRichTextCtrl лепим, наши патчи уже в 2.8.8 вроде были

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)