Форум программистов, компьютерный форум CyberForum.ru

Помогите создать окно с кнопками, графика win32 API - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ c, c++, FreeBSD, Postgres, создание библиотек http://www.cyberforum.ru/cpp-beginners/thread495604.html
Делаю базу данных в постгрес. Там есть возможность загрузки библиотек, написанных на си. Это работает без проблем. Но в мануале по постгресу говорится что язык должен быть C или тот, который 'can be made compatible (C++)'. Так вот вопрос, как можно сделать библиотеку на С++, совместимую с С (конечно, нужен мне только экспорт функций, но вот реализовать хотелось бы с классами...) Компилировал gcc...
C++ Почему EnumChildWindows не работает в классе? У меня есть класс, в нем 2 функции - 1я функция: BOOL CALLBACK MyClass::BigButtonEnum(HWND hwnd, LPARAM) { GetWindowText(hwnd, buffer, 100); MessageBox(0,buffer,'',0); return true; }а 2й функцие нужно вызвать EnumChildWindows с 1й функцией, вот она: void MyClass::First(HWND hWindow) { http://www.cyberforum.ru/cpp-beginners/thread495592.html
C++ Помогите с ошибкой Access violation reading location 0x1ed1d9f8.
Не могу разобраться с VS.... У меня был хороший, проверенный проект, в котором все хорошо работало и небыло проблем. Тут я стал добавлять в класс ххх новые возможности, связанные с считыванием файла. Тут все и начилось - допустим, что при считывании файла могут произойти ошибки (ну считываем там int вместо char), код написан, компилируем, 0 error 0 warning. Все ОК. Запускаем. Вылетает ...
Изменение ProgressBar диалогового окна из любого места C++
Программирую на Визуале только 3 месяца, и не до всего могу сама докопаться. Подскажите кто может. При выборе пункта меню необходимо вызвать диалоговое окно с прогрессБаром. На диалоговом окне нет никаких кнопок только этот прогрессБар. Таким образом нужно сразу при запуске этого диалога отображать процесс движения индикатора. Движение этого Бара зависит от вычислений, производимых в другом...
C++ Как иcследовать DLL написанную на С++ 5.0? http://www.cyberforum.ru/cpp-beginners/thread495524.html
Необходимо ее использовать в своем проекте на C#, необходимы имена методов и их параметры. Документации нет. *.h файла тоже нет.
C++ Как получить данные полей в выделенной строке DataGrid Control??? Народ! Помогите, пожалуйста, найти как можно взять данные полей в выделенной строке в ActiveX элементе Datagrid Control или через связанный с ним ADO OLEDB Control? Подскажите, плиз!!! подробнее

Показать сообщение отдельно
kpoxa
5 / 5 / 0
Регистрация: 08.12.2009
Сообщений: 213
25.05.2011, 01:23  [ТС]     Помогите создать окно с кнопками, графика win32 API
В общем попытался я прорисовывать кнопеки через WM_DRAWITEM.
Результат:
При появлении окна кнопки появляются как полагается, все хорошо.
Когда я нажимаю мышью на одну их кнопок картинка на ней меняется на нажатую (Clicked).
Когда я отпускаю кнопку мыши, то генерируется код WM_COMMAND, но...
Картинка не возвращается в положение не нежатой (UnClicked). Если поместить MessageBox в событие WM_COMMAND, то какртинка возвращается в положение UnCliked.

Вывод: WM_DRAWITEM реагирует только на изменение состояния кнопки, т.е Selected/Unselected, Focused/Unfocused.
И вовсе не реагирует на действие мыши (MouseButtonDown/MouseButtonUp). А это именно то, чего мне нужно добиться. Мне нужно именно создать эффект 'нажатия' на кнопку.

Пытался поместить обработку для WM_LMOUSEDOWN и WM_LMOUSEUP в родительское окно, но эти события не происходят на самих кнопках, только в родительском окне (Имеется ввиду MainWinProc).

Пытался задать для кнопки собственную оконную процедуру, но в этом случае есть проблемы с прорисовкой, хотя как раз в ней эти события мыши улавливаются. Но в этом случае совсем не срабатывает WM_DRAWITEM событие.

Как же быть? А мне еще хотелось добавить и 'подсветку' кнопки при прохождении мыши над ней!?
 
Текущее время: 16:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru