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

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

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

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

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

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

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

Добавлено через 11 часов 12 минут
_w64 - если стоит перед типом, но на 64х битной ОС этот тип будет иметь размер 64 бита.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2011, 01:23
Ответы с готовыми решениями:

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

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

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

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

1
373 / 320 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
20.03.2011, 16:37 2
Лучший ответ Сообщение было отмечено 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2011, 16:37

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.