Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct / 11 сообщений из 11, страница 1 из 1
30.07.2008, 14:37
    #35460526
kalginap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
Необходимо написать обработчик события pbm_drawitem для окна. Этот самый обработчик принимает аргумет drawitemstruct типа long , который согласно Windows SDK представляет собой структуру. Тогда как обратиться к этому аргументу именно как к структуре а не как к аргументу типа long ?
...
Рейтинг: 0 / 0
30.07.2008, 14:53
    #35460599
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
kalginapНеобходимо написать обработчик события pbm_drawitem для окна. Этот самый обработчик принимает аргумет drawitemstruct типа long , который согласно Windows SDK представляет собой структуру. Тогда как обратиться к этому аргументу именно как к структуре а не как к аргументу типа long ?
Из того, что Вы говорите - этот аргумент по всей видимости указатель на структуру, скопировать содержимое памяти по этому указателю в структуру можно при помощи функции CopyMemory(), передав в качестве одного из параметров - указатель на структуру, а другого - полученный указатель.
...
Рейтинг: 0 / 0
30.07.2008, 14:56
    #35460612
Dmitry..
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
обьявляешь внешнюю ф-цию RtlMoveMemory
создаешь структуру например t_drawitemstruct которая соответствует API
и на указанном событии копируешь из указателя drawitemstruct в локальную структуру t_drawitemstruct.
...
Рейтинг: 0 / 0
30.07.2008, 15:07
    #35460652
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
Локшин Маркпри помощи функции CopyMemory().
Да, WinAPI функция действительно называется RtlMoveMemory.
...
Рейтинг: 0 / 0
30.07.2008, 15:38
    #35460764
kalginap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
Dmitry..обьявляешь внешнюю ф-цию RtlMoveMemory
создаешь структуру например t_drawitemstruct которая соответствует API
и на указанном событии копируешь из указателя drawitemstruct в локальную структуру t_drawitemstruct.

Декларирую функцию RtlMoveMemory:
subroutine RtlMoveMemory(long Dest, ref s_drawitem Source, long Length) library "kernel32.dll";
Создаю структуру s_drawitem, соответствующую API. Объявляю ее локальный экземпляр lstr_drawitem, вызываю RtlMoveMemory(drawitemstruct, lstr_drawitem, 52), где drawitemstruct - аргумент обработчика события pbm_drawitem. Возникает unhandled win32 exception occured in PB110.exe.
Где ошибка?
...
Рейтинг: 0 / 0
30.07.2008, 16:01
    #35460840
_Guest_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
начиная с 10.5 это стало проблемой...
...
Рейтинг: 0 / 0
30.07.2008, 16:07
    #35460857
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
_Guest_1начиная с 10.5 это стало проблемой...
Помотрите как реализовано такое коприование в объекте uo_systemchoosecolordialog в WinAPI . Тоже не работает?
...
Рейтинг: 0 / 0
30.07.2008, 18:44
    #35461361
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
kalginapНеобходимо написать обработчик события pbm_drawitem
А зачем?
...
Рейтинг: 0 / 0
31.07.2008, 10:47
    #35462208
_guest_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
Локшин МаркПомотрите как реализовано такое коприование
Проблема не в копировании, а в использовании события pbm_drawitem
адрес структуры приходит не правильный
...
Рейтинг: 0 / 0
31.07.2008, 10:52
    #35462233
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
_guest_1 Локшин МаркПомотрите как реализовано такое коприование
Проблема не в копировании, а в использовании события pbm_drawitem
адрес структуры приходит не правильный
А действительно, зачем вам это событие понадобилось?
...
Рейтинг: 0 / 0
31.07.2008, 13:34
    #35463019
_Guest_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct
Локшин Марк А действительно, зачем вам это событие понадобилось?
Для чего kalginap - не знаю
Мне для меню
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как в бработчике события pbm_drawitem обратиться к аргументу - структуре drawitemstruct / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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