![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Нужно при щелчке по EDITTEXT выделить весь текст в нём.
В обработке WM_COMMAND ждёт фокуса по контролу:
Но эффекта нет - текст не выделяется. Где ошибка? |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Несколько вопросов.
До SendDlgItemMessageW дело вообще доходит (не пробовали MessageBox туда засунуть)? У Вас уникодовый контрол? Вы создавали диалог через CreateDialogW? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Попробуй заменить на Post
И да, проверь, что условие выполняется, поскольку непонятно, откуда ты берешь codeNotify -------------------- ... |
|||
|
||||
| Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Естественно проверил до того как открыть тему) Доходит, условие выполняется.
Контрол: #define ID_TAT_SIZE_WIDTH 129 ... EDITTEXT ID_TAT_SIZE_WIDTH, 38, 14, 25, 12, ES_CENTER | ES_NUMBER В приложении везде юникод. Создал через CreateDialogParamW. Можно подробнее что именно заменить? Это сообщение отредактировал(а) Riddik - 6.6.2013, 10:11 |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Заменить SendDlgItemMessageW на PostMessageW( GetDlgItem( hwnd, ID_TAT_SIZE_WIDTH), ...). PS Что есть ID_EDIT??? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| Riddik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
||||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Не надо везде писать так SendDlgItemMessageW !!!
нужно везде писать так SendDlgItemMessage как и все остальные WinAPI функции !!! И еще не нужно писать так !!!
и тому подобную галиматью Я думаю часть ошибок отпадет или компилятор сругнется показывая на ошибки. Это сообщение отредактировал(а) Dem_max - 7.6.2013, 04:35 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| Riddik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 2.12.2006 Репутация: нет Всего: нет |
Почему? Если приложение unicode, всё равно все ф-ии заменяться на W?
А как нужно, поясни, плийз? |
||||
|
|||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
| GremlinProg |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
А вот так как раз и не нужно! Правильных-то по сути только 3 варианта: 1.
2.
3.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||||
|
|||||||||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Если уж ставить все точки над i, среди трёх ваших вариантов нет ни одного правильного. Грубейшее нарушение стандарта. Многие компиляторы вообще не обязаны это компилить. Это сообщение отредактировал(а) volatile - 13.6.2013, 23:27 |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
по всей видимости, это нарушение персонального стандарта volatile )) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
какого стандарта ??? -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| volatile |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Неявное приведение к неконстантному указателю константной строки. Запись по таким указателям, кстати только студия позволяет. (причем позволяет - не значит что это нормально так делать, даже в студии) gcc же вообще вывалицца с сегфолтом. (и правильно сделает!) А кто помешает записать по неконстантному указателю? Сие есть источник самых мерзопакостных багов. (те которые компиляцца без единой ошибки, а потом когда-то начинают вытворять черт знает что). <удалено> Вчера немного был не в духе. грубовато написал, прошу прощения. В общем, константную строку всегда нужно присваивать константному указателю
А если нужен не константный указатель, то
Это сообщение отредактировал(а) volatile - 16.6.2013, 00:33 |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
А кто тут по ним пишет?
В принципе да, но стандарт С++ в части присваивания именно строковых литералов в именно char* указатель сделал некоторое послабление. Для любых других указателей запись const версии в не-const указатель является ошибкой времени компиляции. Если бы то же самое сделали и для строк, то перестало компилится бы процентов 90 старого кода gcc кстати на такие присваивания дает варнинг PS. В данном случае речь шла о правильном написании программы для UNICODEа и не UNICODEа, а не о константности указателей. Замечание на отсутствие const выглядит придиркой. Давайте тогда уж критиковать и имя переменной - должна быть не stroka, а string. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |