Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 28.08.2009
Сообщений: 15

Как предать указатель через LPARAM

20.03.2011, 01:23. Показов 2446. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу обойтись без глобальных объектов в приложении на Win32Api, в приложении из GUI только два диалога (за основное окно отдувается один из диалогов), можно как-нибудь передать указатель на объект через LPARAM?

Создаю диалог так:

Code
1
2
3
4
5
int WINAPI WinMain(...)
{
    DialogBox(hinstance, "Dialog", NULL, DialogProc);
    return 0;
}
В диалоговой ф-ии DialogProc вызывается функция инициализации диалога, сигнатура:
Code
1
BOOL DialogInit(HWND, HWND, LPARAM);
Можно как-нибудь кидать указатель на объект между этими ф-ми?

LPARAM определен как LONG_PTR, а тот в свою очередь как _w64 long.
Что такое _w64?

Добавлено через 11 часов 12 минут
_w64 - если стоит перед типом, но на 64х битной ОС этот тип будет иметь размер 64 бита.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2011, 01:23
Ответы с готовыми решениями:

Как оброботать WindowProc(Handle, UINT uMsg, WPARAM wParam, LPARAM lParam);
Привет люди мне нужен совет: как оброботать WindowProc(Handle, UINT uMsg, WPARAM wParam, LPARAM lParam); параметры ну я знаю хендл а...

Передача Float через SendMessage(LParam)
Возможно глупый вопрос, но ситуация следующая: bool __fastcall TForm1::DataWaveIn(HWND hWnd, HWAVEIN hWaveIn, LPWAVEHDR pHdr) { ...

Как предать id пользователя
Всем доброго времени суток! Подскажите пожалуйста, как можно получить id пользователя, при голосовании? <?php ...

1
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
20.03.2011, 16:37
Лучший ответ Сообщение было отмечено Hard как решение

Решение

Можно как-нибудь кидать указатель на объект между этими ф-ми?
Да, можно, но только в определенных точках программы. Например, при создании диалога при помощи функции CreateDialogParam(..., LPARAM dwInitParam) и еще др. функций вида ...Param. Тогда в DialogProc нужно обрабатывать сообщение WM_INITDIALOG примерно так
C++
1
2
3
4
5
6
7
8
LRESULT CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static MY_DATA* pMyData;
    switch (uMsg)
    {
    case WM_INITDIALOG:
        pMyData = (MY_DATA*)lParam;
    ...
Что такое _w64?
__w64
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2011, 16:37
Помогаю со студенческими работами здесь

Как передать lParam в EmulateKey
Как передать lParam? procedure EmulateKey(Wnd: HWND; VKey: Integer); asm push 0 push edx push 0101H //WM_KEYUP push...

Указатель типа void. Использование косвенного связывания через универсальный указатель
Необходимо использовать косвенного связывания через универсальный указатель, примерный вид: struct обобщение{ключ; void* на что угодно}...

Как предать параметр, полученный из атрибута?
Как предать параметр полученный из атрибута. "ajax":({ "dataType" : 'json', "type" : "GET", "url":...

Как получить ссылку на указатель или указатель на указатель в массиве?
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

Как предать переменную из PHP в JS из разных файлов!
Есть два РАЗНЫХ файла. в qwer.PHP есть переменная, которую нужно переть в qwer.JS. Как это сделать? Везде пишеться про передачу в одном...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru