Page 14 of 50
Posted: Mon Sep 13, 2010 11:10 am
by FeyFre
DV, а Вы не пытались при отображении MessageBox добавить флажок MB_DEFBUTTON1 ?
И вообще, помоему не стоит думать о MessageBox как об обычном диалоге. Там кнопки/иконки/надписи рождаются на диалоге по ходу дела, а не с ресурсов достают, так что на работоспсобность это "фичи" ставить не стоит ИМХО
Posted: Mon Sep 13, 2010 11:19 am
by DV
FeyFre wrote:при отображении MessageBox добавить флажок MB_DEFBUTTON1 ?
Как раз первым делом пытался. Не работает, что неудивительно хотя бы потому, что
FeyFre wrote:И вообще, помоему не стоит думать о MessageBox как об обычном диалоге.
А разве об этом должны были подумать не в Майкрософт?
Как я уже пейсал выше, в MessageBox с двумя кнопками эта фича работала.
Posted: Mon Sep 13, 2010 12:01 pm
by FeyFre
Точно работает на всех двукнопочных сообщениях? И на MB_OKCANCEL и на MB_YESNO ? А на трехкнопочных? На четрыекнопочных? Дело конечно не наше - искать в чём глюк,
Posted: Wed Sep 15, 2010 1:40 pm
by DV
QSearch v.3.7
* третья годовщина QSearch

* изменено поведение 'srch_pickup_selection'
+ добавлено: 'editor_autofocus'
Posted: Wed Sep 15, 2010 11:15 pm
by se7h
поздравляю
за автофокус отдельное спасибо
Posted: Thu Sep 16, 2010 8:27 am
by VladSh
DV,
Огромное спасибо! Это именно то, что хотелось

Posted: Mon Sep 20, 2010 9:39 pm
by Infocatcher
Мысли вслух: а ведь можно пойти дальше звездочек и вопросиков и искать через регулярные выражения Scripts-плагином при вводе строки в обрамлении слешей.

Posted: Mon Sep 20, 2010 10:43 pm
by FeyFre
Infocatcher
Тогда можно и без Scripts-плагина обойтись, а слинковаться с pcre.lib, всё-же по мощнее реализация будет.
Posted: Wed Sep 22, 2010 7:28 am
by DV
FeyFre wrote:слинковаться с pcre.lib
Ковырял я как-то pcre, но до полноценного использования так и не дошёл. Да и понимает он, вроде, только ANSI с подключаемой поддержкой UTF-8. Хотя это, конечно, мелочи - WideCharToMultiByte и наоборот никто не отменял.
Однако, есть следующие два момента, почему pcre надо было бы включить не в QSearch, а в сам AkelPad:
1) pcre слишком "пухлый" по сравнению с размером плагина
2) поддержка регулярных выражений только для поиска без возможности замены строк - это, хм, как смотреть новости без звука. Вроде и картинка есть, и всё красиво, но толку мало.
Posted: Wed Sep 22, 2010 8:01 am
by FeyFre
DV
Я и сам ковырял pcre.lib с целью привязать к одному проекту(ATL/MFC-ый CAtlRegExp просто убожество). Да, с заюзом POSIX-совместимых либ у Win32 проблемы(как у меня с Aspell), но нерешаемых нету. Хотя я уже давно жду когда M$ подключит UTF8 в системные вызова(типа CreateFileU), а то уже даже обрезанный ucs2 начинает раздражать.
RE: Однако:
1. Не обязательно линковать статически. Динамически слинковаться, и сделать приписку: "pcre.dll скачать оттуда, и положить туда". Тогда несколько плагинов смогут им пользоваться.
2. Ну например глухонемым звука и не надо, им достаточно сурдопереводчика или же просто читать по губам. Для замены регулярками сейчас есть SearchReplace.js так что пока нужно экспериментировать хотя бы только с поиском.
Posted: Mon Sep 27, 2010 1:28 pm
by Fr0sT
При наведении мыши на edit плагина окно Акеля выскакивает наверх, если было накрыто другими окнами. Это как-то обескураживает.
Posted: Mon Sep 27, 2010 2:02 pm
by FeyFre
Fr0sT
Такова природа фокуса ввода клавиатуры. Из MSDN:
The concept of keyboard focus is related to that of the active window. The active window is the top-level window the user is currently working with. The window with the keyboard focus is either the active window, or a child window of the active window. To help the user identify the active window, the system places it at the top of the Z order and highlights its title bar (if it has one) and border.
Posted: Mon Sep 27, 2010 3:42 pm
by Infocatcher
А разве плагин не может проверить, является ли окно AkelPad'а самым верхним?
Posted: Mon Sep 27, 2010 4:12 pm
by FeyFre
Infocatcher
Может, а толку? Фокус ввода окно получает, и система автоматически его поднимает вверх, где-бы оно не лежало.
Posted: Mon Sep 27, 2010 4:25 pm
by Instructor
QSearchDlg.c
Code: Select all
// 1, 10 and 11 accepted
HWND hFocusedWnd = GetFocus();
if ( hFocusedWnd && hFocusedWnd != hEdit )
{
SetFocus(hEdit);
}
QSearch.c
Code: Select all
HWND hFocusedWnd = GetFocus();
if ( hFocusedWnd && hFocusedWnd != hWnd )
{
if ( hFocusedWnd == g_QSearchDlg.hFindEdit )
{
SetFocus(hWnd);
}
}
Или можно с помощью GetForegroundWindow.