powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Нажатие кнопки
2 сообщений из 2, страница 1 из 1
Нажатие кнопки
    #34270041
Фотография Burzum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу не пинать, поиском пользовался, не получилось, в Visual C++ полный ноль. Необходимо немного подредактировать чужую программу.
Есть диалоговое окно. В нём две кнопки, пара CheckBox'ов и Edit'ов.
Я создал переменную, которая следит за состоянием CheckBox'а (кликнул правой кнопкой на CheckBox'е, выбрал "Add Variable", имя поставил m_cAuto).
Из MainFrm.cpp вызывается процедура, в ней следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
{
...
//Это по-моему переменная диалогового окна.
CAuthDlg dlg;
... //определённые действия. Здесь так же выставляется значение dlg.m_cAuto

//Это по-моему проверка нажатия кнопки. Тело заключённое в {} мне нужно так же выполнять,
//если dlg.m_cAuto==1.
while((dlg.DoModal()==IDOK))  //IDOK - это ID у кнопки на диалоговом окне.
{
...
}
Пробовал подставлять
Код: plaintext
1.
while((dlg.DoModal()==IDOK) || (dlg.m_cAuto== 1 ))
Но то, что в скобках выполняется только по нажатию кнопки.
Решил попробовать програмное нажатие кнопки. Но не получилось использовать функцию FindWindow:
Код: plaintext
1.
2.
3.
char szAppName[ 256 ] = "Безымянный - Блокнот";
if (FindWindow(NULL, szAppName))
AfxMessageBox("asdf");
Запустил блокнот, но сообщение не выскочило.
Общая идея нажатия кнопки была такой:
Код: plaintext
1.
2.
3.
4.
HWND  hDlg, hOk;
hDlg = FindWindow(NULL, "Надпись в заголовке окна");
hOk = GetWindow(hDlg, IDOK);
SendMessage(hOk, WM_KEYDOWN,  0 ,  0 );
...
Рейтинг: 0 / 0
Нажатие кнопки
    #34270553
Фотография Burzum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался с DoModal(). Заработало.
Чисто из спортивного интереса, почему следущий код не находит хэндл запущенного блокнота?
Код: plaintext
1.
2.
3.
char szAppName[ 256 ] = "Безымянный - Блокнот";
if (FindWindow(NULL, szAppName))
AfxMessageBox("asdf");
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Нажатие кнопки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]