https://t.me/ChatAssembler/109494
Здравствуйте! Да вот ищем ID из текстового поля в окошке dialogBox!
И что не так с GetDlgCtrlID или GetWindowLongPtr(hwnd, GWLP_ID)?
С первым что то не выходит а второе еще не пробовал!
Они должны идентично работать.
Значит я просто не понимаю как синтаксически строку написать потому что никаких значений нигде не вижу ни в стеке ни в регистрах, Пишу так invoke GetDlgCtrlID, [hwnddlg] или так пробовал, invoke GetDlgCtrlID, [hwnddlg], GetFocus или [GetFocus]
Вроде выходит, что мне надо использовать SetDlgCtrlID потому что нужно предыдущее значение а не значение кнопки на которую я кликнул, т.е. я выделяю нужное поле и нажимаю кнопку памяти чтобы в это поле попало значение, и если использовать GetDlgCtrlID получается он вернет id кнопки либо тогда надо ставить GetDlgCtrlID в основной цикл чтоли и отлавливать эти id сравнением и сохранять, потому что id известны но так что то не получается пока. и еще такой момент что у меня почему то нет SetDlgCtrlID в той же библиотеке что и GetDlgCtrlID :)
а зачем тебе вообще получать ID?
А как же кнопка поймет куда ей значение копировать 😀
фишка в том что когда ты нажмёшь на кнопку ты сначала передашь ей фокус
Блин, об этом я и не подумал. Ну окей, там же поля ввода? Тогда можно по WM_COMMAND/BN_SETFOCUS сохранять hwnd последнего активного вместо GetFocus.
сделай две кнопки одна из памяти в одно поле восстанавливает, другая в другое
Так я сначала так и сделал но это кондово, сейчас лучше!
проще две раздельные кнопки запилить, либо запилить классический интерфейс с одним текстовым полем
И историей вычислений. Но это другая задача :)
Хотя да, ты прав. Такой подход по-любому убивает клавиатурную навигацию по диалогу. У меня выделено поле1, я таб-таб-таб через поле2 и поле3 на кнопку памяти. И она уже никак не догадается, какое поле я имел в виду.
для такого можно задействовать акселератор (комбинацию клавиш)
Можно, но контринтуитивно, что акселератор будет работать, а табы всё портить.
вот потому и говорю либо по кнопке на каждое текстовое поле, либо только одно текстовое поле
Обсуждают сегодня