![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]()
Продолжу тему здесь, в более подходящем разделе ибо сроки уже поджимают.
В общем начал я писать программу для курсовой на WinApi, ничего о последнем не зная. С С++ я тоже не очень хорошо знаком, тем не менее писать надо и желание это делать тоже имеется. Вот на чём я застрял сейчас: При загрузке файла нужно создать дочернее окно с пользовательскими данными в виде структуры, записать в эту структуру преобразованные данные из файла в виде массива чисел и отрисовать по этим числам картинку. В последствии этот массив нужно будет преобразовывать обратно и сохранять, но это на закуску. С загрузкой и рисованием проблем нет, а вот со структурой и всякими указателями я не справляюсь. Итак имеется структура: Код:
Код:
Вроде мне теперь здесь понятно. Создаётся указатель типа Struct (это моя структура для окна), ему выделяется память под размер этой структуры (int + int + float) и присваивается адрес по этой памяти. Хорошо. Структура у окна есть, но она пустая и, как я понял, она должна содержать адрес на массив Potencial. Как мне теперь создать и заполнить (обратиться) к этому массиву? Пробовал писать ptr->Potencial[0][0]=10; но компилятор пропускает эту строчку. Вот так я получаю адрес структуры окна: Код:
Последний раз редактировалось x_Alex_x; 15.04.2013 в 22:50. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
Суля по задаче, использовать SetWindowLongPtr вовсе не обязательно.
В WM_CREATE создавай свою структуру и загружай данные. И, поскольку упомянуто рисование, крайне рекомендую воспользоваться библиотекой WTL - оно хоть и тонкая, но всё таки обёртка над WinAPI, гемора будет на порядок меньше. Там и класс для окна можно замутить...
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
Объясните толком, что значит "но компилятор пропускает эту строчку"?
Компилятор строчки не пропускает... Где-то надо хратнить привязку какая структура к какому окну относиться. А будет ли это делаться из WM_CREATE или извне, значения не имеет. Последний раз редактировалось Stilet; 16.04.2013 в 12:25. |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]() Цитата:
А можно делать вот так? BOOL LoadFile(LPSTR pszFileName, struct Struct* ptr){ .. ptr->Potencial[x][y]=... Я передаю указатель на структуру, чтобы обращаться к ней в функции. Создавать и добавлять окну структуру нужно в WM_CREATE или раньше? у меня вот так: Код:
Последний раз редактировалось Stilet; 16.04.2013 в 12:26. |
|
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]() Цитата:
Нет правила когда и где выделять память под вашу структуру. Просто когда она вам понадобиться уже должна быть выделена. Делайте как вам удобно. Передавать указатель в функцию - не проблема. Последний раз редактировалось waleri; 16.04.2013 в 16:51. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]()
У меня сейчас DEBUG стоит. Попробовал переписать заново - больше не снимаются)
Не понимаю. Теперь функция загрузки файла, в которой заполняется структура, не выполняется. При вызове процедуры в режиме отладки вылазит окно chkstk.asm а всё, что было в функции пропускается. Так же ничего не рисует WM_PAINT, хотя несколько значений массива в структуре я заполнил вручную, он и их не выводит. Последний раз редактировалось x_Alex_x; 16.04.2013 в 20:12. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]()
Подскажите пожалуйста как получить хендл дочернего окна окна клиента?
И как либо убрать крестик закрытия такого окна, либо сделать его недоступным? |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 13.01.2013
Сообщений: 94
|
![]()
И как сделать прозрачную кисть чтобы нарисовать фигуру без заливки?
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Учу WinApi. Разные вопросы | x_Alex_x | Помощь студентам | 45 | 15.04.2013 18:02 |
Cи++ API | Taracan | Фриланс | 24 | 24.07.2011 15:36 |
завернуть флеш в учу оболочку | gufon | Общие вопросы Delphi | 3 | 20.07.2011 07:13 |
учу borland С++ builder 6 | Dazzl | C++ Builder | 3 | 13.05.2011 18:01 |
Учу Си++ под Linux, необходима помощь | prog16 | Свободное общение | 12 | 09.08.2009 15:15 |