QSearch plugin
- Author
- Message
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Как раз первым делом пытался. Не работает, что неудивительно хотя бы потому, чтоFeyFre wrote:при отображении MessageBox добавить флажок MB_DEFBUTTON1 ?
Code: Select all
#define MB_DEFBUTTON1 0x00000000L
А разве об этом должны были подумать не в Майкрософт?FeyFre wrote:И вообще, помоему не стоит думать о MessageBox как об обычном диалоге.
Как я уже пейсал выше, в MessageBox с двумя кнопками эта фича работала.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 1291
- Joined: Thu Nov 16, 2006 11:53 am
- Location: Kyiv, Ukraine
Ковырял я как-то pcre, но до полноценного использования так и не дошёл. Да и понимает он, вроде, только ANSI с подключаемой поддержкой UTF-8. Хотя это, конечно, мелочи - WideCharToMultiByte и наоборот никто не отменял.FeyFre wrote:слинковаться с pcre.lib
Однако, есть следующие два момента, почему pcre надо было бы включить не в QSearch, а в сам AkelPad:
1) pcre слишком "пухлый" по сравнению с размером плагина
2) поддержка регулярных выражений только для поиска без возможности замены строк - это, хм, как смотреть новости без звука. Вроде и картинка есть, и всё красиво, но толку мало.
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
DV
Я и сам ковырял pcre.lib с целью привязать к одному проекту(ATL/MFC-ый CAtlRegExp просто убожество). Да, с заюзом POSIX-совместимых либ у Win32 проблемы(как у меня с Aspell), но нерешаемых нету. Хотя я уже давно жду когда M$ подключит UTF8 в системные вызова(типа CreateFileU), а то уже даже обрезанный ucs2 начинает раздражать.
RE: Однако:
1. Не обязательно линковать статически. Динамически слинковаться, и сделать приписку: "pcre.dll скачать оттуда, и положить туда". Тогда несколько плагинов смогут им пользоваться.
2. Ну например глухонемым звука и не надо, им достаточно сурдопереводчика или же просто читать по губам. Для замены регулярками сейчас есть SearchReplace.js так что пока нужно экспериментировать хотя бы только с поиском.
Я и сам ковырял pcre.lib с целью привязать к одному проекту(ATL/MFC-ый CAtlRegExp просто убожество). Да, с заюзом POSIX-совместимых либ у Win32 проблемы(как у меня с Aspell), но нерешаемых нету. Хотя я уже давно жду когда M$ подключит UTF8 в системные вызова(типа CreateFileU), а то уже даже обрезанный ucs2 начинает раздражать.
RE: Однако:
1. Не обязательно линковать статически. Динамически слинковаться, и сделать приписку: "pcre.dll скачать оттуда, и положить туда". Тогда несколько плагинов смогут им пользоваться.
2. Ну например глухонемым звука и не надо, им достаточно сурдопереводчика или же просто читать по губам. Для замены регулярками сейчас есть SearchReplace.js так что пока нужно экспериментировать хотя бы только с поиском.
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Fr0sT
Такова природа фокуса ввода клавиатуры. Из MSDN:
Такова природа фокуса ввода клавиатуры. Из 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.
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
QSearchDlg.c
QSearch.c
Или можно с помощью GetForegroundWindow.
Code: Select all
// 1, 10 and 11 accepted
HWND hFocusedWnd = GetFocus();
if ( hFocusedWnd && hFocusedWnd != hEdit )
{
SetFocus(hEdit);
}
Code: Select all
HWND hFocusedWnd = GetFocus();
if ( hFocusedWnd && hFocusedWnd != hWnd )
{
if ( hFocusedWnd == g_QSearchDlg.hFindEdit )
{
SetFocus(hWnd);
}
}