|
0 / 0 / 0
Регистрация: 17.01.2010
Сообщений: 4
|
||||||
Почему DialogBox возвращает (-1) ?17.01.2010, 19:21. Показов 3601. Ответов 13
Метки нет (Все метки)
Всем привет! Начал писать программу на Visual C++ (Microsoft Visual Studio 6.0) и сразу же столкнулся с проблемой. Вроде всё примитивно и просто, а диалоговое окно почему-то не создаётся. DialogBox возвращает -1, а почему - не понимаю. В чём может быть дело?
Заранее спасибо!
0
|
||||||
| 17.01.2010, 19:21 | |
|
Ответы с готовыми решениями:
13
Как добавить ActiveX на DialogBox Почему ExecuteScalar возвращает 0? Почему переменная возвращает None? |
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
||
| 17.01.2010, 19:51 | ||
|
Вероятно, причина в том, что ты написал return FALSE; в обработчике WM_INITDIALOG. Из описания этого сообщения в MSDN:
0
|
||
|
0 / 0 / 0
Регистрация: 17.01.2010
Сообщений: 4
|
|
| 17.01.2010, 23:33 [ТС] | |
|
Нет, дело не в этом. Я пробовал и так, и так.
Добавлено через 2 часа 13 минут Кстати, вот ссылка на весь проект (потому как код вроде бы правильный): Optima.rar (файл Optima.rar) Добавлено через 55 минут GetLastError() выдаёт код ошибки 1812 (Наполеон вспоминается =) ). Я посмотрел в MSDN, этот код трактуется так: ERROR_RESOURCE_DATA_NOT_FOUND, The specified image file did not contain a resource section. Какие-то проблемы с ресурсом? Не понимаю, какие. Добавлено через 22 секунды Мда, мне тут объяснили всё, и я понял, что кретин =) Забыл добавить .rc-файл и resource.h в состав проекта. Всегда удивлялся: почему они автоматически не добавляются? =)
0
|
|
|
1 / 1 / 0
Регистрация: 14.03.2011
Сообщений: 13
|
|
| 14.03.2011, 09:27 | |
|
Подниму тему.
Работал на MVS6 и MVS2003 проблем не знал. Решил попробовать MVS2008. Делаю простенький проект под Win32 API. Создаю стандартный диалог и запускаю его в WinMain - всё работает, но стоит добавить в диалог ListBox, то всё - не запускается, хотя, при компиляции ошибок не даёт. DialogBox возвращает -1, GetLastError - ноль. Куда копать?
0
|
|
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 14.03.2011, 15:03 | |
|
Karloson2, что-то вразумительное пока сказать не представляется возможным. Копай в сторону ListBox или выложи код, проверим на 2008.
0
|
|
|
1 / 1 / 0
Регистрация: 14.03.2011
Сообщений: 13
|
||||||
| 14.03.2011, 15:45 | ||||||
|
Там, вроде, всё просто:
ЗЫ: приклеил проект.
0
|
||||||
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
||||||
| 14.03.2011, 17:04 | ||||||
|
))) Так она у тебя и не будет работать. Вернее она работает, но только закрывается лишь начавшись.
WinMain .../не важно что/... return (int) 0; А где обработка сообщений?
0
|
||||||
|
1 / 1 / 0
Регистрация: 14.03.2011
Сообщений: 13
|
|
| 15.03.2011, 08:17 | |
|
Всё там правильно. Убери из диалога List Contol и сообщения будут обрабатываться в DlgProc, пока не будет вызвана EndDialog() и управление не вернется в tWinMain().
Нашёл в чем ошибка: пренебрёг ф-цией InitCommonControls(). Раньше обходился без неё, скармливая линкиру Comctl32.lib и прокатывало, теперь нет.
0
|
|
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 15.03.2011, 14:46 | |
|
Karloson2, два раза ))). Добавь вместо List Contol Radio Button и попытайся сделать ее отметку... Куда от нее пойдет отосланное сообщение?
Я понял к чему ты клонишь. При таком подходе вся последующая обработка сообщений должна производиться в самом DlgProc.
0
|
|
|
1 / 1 / 0
Регистрация: 14.03.2011
Сообщений: 13
|
||
| 15.03.2011, 14:54 | ||
|
Уходим от темы)
0
|
||
| 16.03.2011, 18:09 | ||
|
Digit@ll
Суть в том, что если создается dialog based приложение при помощи макроса DialogBox (функции DialogBoxParam), то создается модальный диалог. При этом, в самом простом случае, WinMain приостанавливается вплоть до закрытия диалога. А система забирает управление очередью сообщений приложения, запускает отдельный цикл сообщений и отправляет сообщения, предназначенные этому диалогу, непосредственно в его DialogProc. Поэтому while (GetMessage...) {...DispatchMessage...} в данном случае не нужен. Но это было бы не так, если бы создавался немодальный диалог (CreateDialog).
0
|
||
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 16.03.2011, 19:57 | |
|
bigredcat, та все это понятно. TranslateMessage(&msg); это вообще, для обработки сообщений с клавиатуры. Пример был дан в общих чертах ), не вдаваясь особо в подробности, но цель работы приложения была в итоге разобрана.
0
|
|
|
1 / 1 / 0
Регистрация: 14.03.2011
Сообщений: 13
|
||||||
| 18.04.2011, 15:54 | ||||||
|
Проблема была в отсутствие явной загрузки DLLки ф-цей InitCommonControlsEx
0
|
||||||
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 19.04.2011, 08:21 | |
|
Да, покатило. ИМХО: бред какой-то, все в целом.
0
|
|
| 19.04.2011, 08:21 | |
|
Помогаю со студенческими работами здесь
14
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|