Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
1

Как получить сообщение о том, что была нажата кнопка RADIOBUTTON?

07.02.2014, 13:08. Показов 3677. Ответов 11
Метки нет (Все метки)

Здравствуйте! Как получить сообщение о том, что была нажата одна из кнопок RADIOBUTTON? То есть, имеется две кнопки-переключатели, и по нажатию одной из них выполнялось определенное действие.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2014, 13:08
Ответы с готовыми решениями:

Как получить информацию о том, что нажата кнопка селфи-палки?
как получить информацию о том что нажата кнопка селфи палки?? (ключевые слова для поиска?))

Как определить, что была нажата кнопка (крестик) закрытия формы
Как определить что была нажата кнопка закрытия формы непосредственно в событии...

Можно ли получить объект TreeViewItem, кнопка которого была нажата
привет форумчане, такой вопрос: можно ли получить объект TreeViewItem, кнопка которого была нажата,...

Какое свойство указывает на то, что кнопка была нажата последней?
Что происходит когда мы жмем на кнопку, какое свойство или что вообще указывает на то что эта...

11
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
07.02.2014, 13:11 2
Цитата Сообщение от casper007 Посмотреть сообщение
Здравствуйте! Как получить сообщение о том, что была нажата одна из кнопок RADIOBUTTON? То есть, имеется две кнопки-переключатели, и по нажатию одной из них выполнялось определенное действие.
Если это радиобаттон - то, насколько знаю, там два состояния: тру и фолс. Мол выбрано что-то или нет. Потому проверка мол радиобаттон->(статус) == тру, тогда делаем то-то и то-то. А что за среда?
0
Почетный модератор
Эксперт С++
5843 / 2853 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
07.02.2014, 13:12 3
casper007, а еще бы было очень не плохо указать среду программирования, в которой вы используете эту кнопку. Или хотя бы кусок кода показать, где она обрабатывается.
0
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
07.02.2014, 13:19  [ТС] 4
Цитата Сообщение от Тамика Посмотреть сообщение
Если это радиобаттон - то, насколько знаю, там два состояния: тру и фолс. Мол выбрано что-то или нет. Потому проверка мол радиобаттон->(статус) == тру, тогда делаем то-то и то-то.
Да, а как проверить? Как послать сообщение на проверку без вспомогательных кнопок? VS 2010
0
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
07.02.2014, 13:23 5
Цитата Сообщение от casper007 Посмотреть сообщение
Да, а как проверить? Как послать сообщение на проверку без вспомогательных кнопок? VS 2010
if(RadioButton1->IsChecked() == true) {...}

Как-то так. Не работала с интерфейсом студии.
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
07.02.2014, 13:23 6
Цитата Сообщение от casper007 Посмотреть сообщение
VS 2010
MFC, C++/CLI или WinAPI? решения разные будут...
0
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
07.02.2014, 13:25  [ТС] 7
Цитата Сообщение от mustimur Посмотреть сообщение
MFC, C++/CLI или WinAPI? решения разные будут...
WinApi
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
07.02.2014, 13:28 8
Цитата Сообщение от Тамика Посмотреть сообщение
if(RadioButton1->IsChecked() == true) {...}
Если C++/cli то лучше событие отлавливать _CheckedChanged(System::Object^ sender, System::EventArgs^ e).

Добавлено через 2 минуты
Цитата Сообщение от casper007 Посмотреть сообщение
WinApi
покажи кусок кода.. я его не очень люблю
0
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
07.02.2014, 13:31  [ТС] 9
Цитата Сообщение от SatanaXIII Посмотреть сообщение
casper007, а еще бы было очень не плохо указать среду программирования, в которой вы используете эту кнопку. Или хотя бы кусок кода показать, где она обрабатывается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void CreateDateWindow(void)
{
    HWin2= CreateWindowW(L"Date_Win",L"Работа с датой",WS_SYSMENU | WS_VISIBLE | WS_TABSTOP, 250,200,580,140,HWin,NULL,HProg,NULL);
    if(!HWin2) {MessageBoxW(HWND_DESKTOP,L"Создать окно редактирования даты не удалось", L"Error!!!", MB_OK); PostQuitMessage(0);}
 
    CreateWindowW(L"button",L"Период",WS_CHILD | BS_AUTORADIOBUTTON | WS_VISIBLE, 20,80,70, 120, HWin2,(HMENU)IDB_PERIOD2,HProg,NULL);
    CreateWindowW(L"button",L"День",WS_CHILD | BS_RADIOBUTTON | WS_VISIBLE, 20,80,70, 120, HWin2,(HMENU)IDB_PERIOD1,HProg,NULL);
    
    CreateWindowW(L"edit",L"", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER,0,20,120,40,HWin2,(HMENU)IDD_DATE1,HProg,NULL);
    CreateWindowW(L"edit", L"",WS_VISIBLE | WS_BORDER | WS_CHILD | ES_CENTER, 60,20,70,40,HWin2, (HMENU)IDD_DATE2, HProg,NULL);
}
 
LRESULT CALLBACK Date_Win(HWND HW,UINT msg, WPARAM WP, LPARAM LP)
{
    switch (msg)
    {
    case WM_PAINT:
        {
 
        break;}
    default: return(DefWindowProc(HW,msg,WP,LP);
    }
 
}
Вот так пока только организовал создание этих кнопок и окна, на котором они будут размещаться.

Добавлено через 1 минуту
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++ и WinAPI если что вдруг.
Здесь чаще отвечают, чем в том разделе.
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
07.02.2014, 13:36 10
Цитата Сообщение от casper007 Посмотреть сообщение
LRESULT CALLBACK Date_Win(HWND HW,UINT msg, WPARAM WP, LPARAM LP)
здесь по-моему можно перехватить событие смены выбора HW и msg
0
БНТУ ФИТР
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
07.02.2014, 13:59 11
casper007, в оконной процедуре обрабатываем сообщение WM_COMMAND. Младшее слово wParam будет ID вашей радиокнопки. Проверяете его и орбрарабываете.
1
71 / 71 / 58
Регистрация: 12.12.2013
Сообщений: 420
02.02.2015, 22:55  [ТС] 12
Если кому интересно, то решение довольно простое для двух вариаций:
1) Получить сообщение, что нажата именно эта кнопка radiobutton и сразу выполнить какое-либо бействие
Сообщение о нажатии отправляется автоматически, и его достаточно обработать в оконной функции в кейсе WM_COMMAND (switch(LOWORD(wParam))
2) Нажать на кнопочку, но выполнить операцию после какие-то действий (например, выбрали элемент в настройках, а дальше нажали кнопку "сохранить")
Проверяем функцией SendMessageW(GetDlgItem(hwnd,id_button), BM_GETCHECK, 0, 0).
Если функция возвращает BM_GETCHECK, то кнопка была нажата
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2015, 22:55

как проверить была ли нажата кнопка (windowforms)
как проверить была ли нажата кнопка (windowforms)

Как узнать какая кнопка была нажата?
такой код: HMTL <form action='myasp.asp' method=post name='form1'> <input type=submit...

Как отследить, какая кнопка была нажата
Есть представление, в котором есть несколько кнопок Есть контроллер, в котором эти кнопки вызывают...

Как узнать индекс элемента, кнопка которого была нажата
Здравствуйте! Имеется разметка: <Grid> <ListBox ItemsSource="{Binding RequestCounters}"...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.