|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.10.2013, 13:18 | #1 |
Пользователь
Регистрация: 15.10.2013
Сообщений: 29
|
Кнопки в WinApi
Доброго времени суток, господа программисты Есть такая вот проблемка, а точнее недопонимание. Сам я инженер, и от программирования под Windows далёк, но вот тут пришлось сделать програмку для управления устройством по COM порту (точнее по USB но через адаптер). И как оказалось, можно конечно было графическим редактором воспользоваться, но когда я взялся выяснять, как всё это делается, я об этом не знал, так что навалился на WinApi... нууу и затянуло Так вот, программа состоит из родит. окна и из двух кнопок. Внимание вопрос номер адын: хочу, что б при нажатии на кнопку надпись на ней менялась. В принципе при нажатии на одну из кнопок (bt1) надпись на ней меняется, но по почему, она становится прежней если я нажимаю на другую кнопку? Есть ещё вопросы но я их тогда следом задам. Заранее спасибо. Исходничек прилагается. Почти всё что связано с работой с портом я выкинул, что бы не отвлекало.
Последний раз редактировалось Грендайзер; 16.10.2013 в 13:22. |
16.10.2013, 22:50 | #2 |
Новичок
Джуниор
Регистрация: 16.10.2013
Сообщений: 1
|
|
17.10.2013, 04:42 | #3 | |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
SetWindowText(hBtn1, "Закрыть порт");
Цитата:
Код:
Перед созданием новой кнопки, старую нужно удалять, например так: Код:
Код:
Код:
Последний раз редактировалось Vladiger; 17.10.2013 в 08:24. |
|
17.10.2013, 10:20 | #4 |
Пользователь
Регистрация: 15.10.2013
Сообщений: 29
|
Ух ты! Большое спасибо! У меня ещё была пара вопросиков, но сначала это дело обмозгую!
|
17.10.2013, 11:10 | #5 |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
Кстати, забыл написать: - Раз уж упомянул про DestroyWindow(HWND hWnd), то должен заметить, что это касается всех окон/контролов созданных функцией CreateWindow(), в том числе и основного окна приложения...
Не знаю что страшного может произойти если перед выходом из программы основное окно не удалить, возможны утечки памяти, но точно не знаю, не задавался пока таким вопросом. И тем не менее, удалять его нужно. Перед выходом из программы, нужно добавить строчку DestroyWindow(hMainWnd); То есть примерно так: Код:
Последний раз редактировалось Vladiger; 17.10.2013 в 11:18. |
17.10.2013, 11:25 | #6 |
Пользователь
Регистрация: 15.10.2013
Сообщений: 29
|
Vladiger, большое спасибо, на данный момент, все вопросы с которыми я столкнулся Вы помогли разрешить.
|
17.10.2013, 11:28 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
При завершении процесса освобождаются все его ресурсы, включая и окна.
Удалять WS_CHILD окна необязательно - они автоматически закрываются при закрытии родителя. |
17.10.2013, 11:51 | #8 |
Пользователь
Регистрация: 31.08.2013
Сообщений: 93
|
А вообще то пардон, не заметил вот это:
Код:
Единственное что сюда можно было добавить, это отмену регистрации класса, например так: Код:
Это конечно не суть важно где делать эти отмены и уничтожения окон, главное что бы вы суть уловили. Зарегистрировали класс, создали окно - значит перед выходом нужно все это дело освободить! |
17.10.2013, 12:12 | #9 |
Пользователь
Регистрация: 15.10.2013
Сообщений: 29
|
Опаньки... т.е. ещё и класс надо разрегистрировать? А вот об этом я даже и не знал...
|
17.10.2013, 12:22 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
WM_CLOSE стандартно сам закроет окно в DefWindowProc.
Отрегистрировать окно в обработчике WM_CLOSE не получится, потому что окно в этот момент все еще существует, т.е. класс окна используется. При выходе из программы *все* ресурсы освобождаются. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) | Артём1991 | Помощь студентам | 0 | 25.03.2012 17:13 |
Цвет кнопки,Delphi WinApi | red-eye | Win Api | 0 | 08.01.2012 21:49 |
Изменение свойств кнопки через WinAPI | Никки | Win Api | 12 | 20.09.2009 15:01 |
UCOZ: Кнопки кнопки на изображении | ReDuX | HTML и CSS | 19 | 25.04.2008 02:39 |
триггерные кнопки и кнопки переключатели в DELPHI | MARGO | Помощь студентам | 3 | 12.11.2007 17:35 |