Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Spin Control & Edit Box  (Прочитано 13480 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
llkenny
Гость
« : 26-08-2009 13:25 » new

Добрый вечер, вопрос по Spin Control. При нажатии на стрелки значение в подопечном Edit Box изменяется сразу на 2, как это исправить? Точнее даже сделать чтобы значение можно было изменять на 0.1 или 0.01.

И еще проблема такого характера : При вводе с клавиатуры символов в любой контрол сразу вводятся 4 одинаковых символа, с чем это может быть связано? Для создания форм использовал редактор ресурсов, сами формы и контролы описаны в программе с помощью API функций.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 26-08-2009 13:45 » 

1. Этож всё справочная инфа - читайте MSDN, она несёт разумное, доброе, вечное:
http://msdn.microsoft.com/en-us/library/bb759885(VS.85).aspx

2. Так кривизну определить очень сложно, почти невозможно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
llkenny
Гость
« Ответ #2 : 26-08-2009 13:51 » 

msdn за время моего изучения API излазил вдоль и поперек, насчет первого вопроса ничего не нашел там. По ссылке ответа на вопрос не вижу.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 26-08-2009 14:34 » 

llkenny, сделай релизный экзешник и прикрепи, а ещё лучше с проектом. Мы и посмотрим )
Записан

llkenny
Гость
« Ответ #4 : 26-08-2009 15:11 » 

Выкладываю 3 файлы, сама прога, файл ресурсов и кусок кода, в котором использую ресурсы. Еслиб это было MFC я бы подумал что косяк в используемой кодировке... А тут даже не знаю куда смотреть, вроде формы описаны правильно, почему же в любом добавленном контроле символы вводятся сразу по 4...

з.ы. После запуска программы в меню Options->Model, там та самая форма. Программа правильно не закрывается, так что через диспетчер задач... Извиняюсь

* zomg.exe (47 Кб - загружено 932 раз.)
* Menu.rc (6.38 Кб - загружено 828 раз.)
* api.cpp (3.97 Кб - загружено 1204 раз.)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 26-08-2009 16:04 » 

экзешник не запускается, ищет d3dx9_41.dll  (замечу, что DX9 и даже DXSDK у меня установлены Улыбаюсь )

по оконной процедуре - всё таки не всё надо запускать в процедуру по умолчанию. Чтото, обработав, надо заворачивать путём

return 1; //хотя, для каждого сообщения нужно уточнять в мсдн, но обячно надо вернуть не ноль, чтобы сообщение считалось обработанным.

Ещё вижу рекурсию

LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
...
     SendMessage(hSpinxB, UDM_SETRANGE32, 0, 10);
....
}

то есть мы непосредственно  вызываем снова  MsgProc из неё же самой. А с рекурсиями надо быть осторожным всегда Улыбаюсь

Если ситуация позволяет, то сделай PostMessage() , тогда рекурсии не будет - сообщения обработаются после выхода из оконной процедуры (они будут в очереди сообщений)
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 26-08-2009 16:06 » 

а ещё е6сть преаолезная утилита Spy++ в составе студии - можно подробно рассмотреть, откуда летят лишние сообщения
Записан

llkenny
Гость
« Ответ #7 : 26-08-2009 16:42 » 

Спасибо за советы, Spy++ штука полезная, буду пробовать.

Насчет рекурсии, да, это конечно нехорошо, однако если закоментить полностью вызов окон и их обработку, и просто вписать вызов одной формы, созданной в редакторе ресурсов - ситуация не меняется... Жаль
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 26-08-2009 16:54 » 

llkenny, хм, софт битый ? А на другом компе со студией свой проект пробовал, как он там себя ведёт ?
Записан

llkenny
Гость
« Ответ #9 : 26-08-2009 17:04 » 

С API пока не пробовал, если создать новый проект MFC или Windows Forms то там все впорядке.
Записан
x77
Команда клуба

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #10 : 27-08-2009 08:13 » 

чтобы значение можно было изменять на 0.1 или 0.01.

попробуйте UDM_SETACCEL.

з.ы. но вообще, судя по мессагам, юзается не SpinEdit, а UpDown. а я не слышал, чтобы он работал с дробными величинами.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines