Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Hard
0 / 0 / 0
Регистрация: 28.08.2009
Сообщений: 15
#1

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

20.03.2011, 01:23. Просмотров 835. Ответов 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 бита.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2011, 01:23     Как предать указатель через LPARAM
Посмотрите здесь:

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

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

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

Как получить LPARAM по координатам курсора мыши? - C++ WinAPI
привет всем. есть вопрос. есть макросы такие как GET_X_LPARAM( LPARAM lParam ) и GET_Y_LPARAM( LPARAM lParam), которые возвращают x и y...

Как вызвать функцию через указатель? - C++
Привет всем! Помогите пожалуйста! Есть готовая рабочая программа, надо вызвать функцию через указатель. Никак не могу разобраться... =( ...

Как сделать доступ через указатель? - C++
Всем привет. Нужна помощь. Нужно вектору объектов в одном классе сделать указатель и получить доступ к его содержимому. Вот код: ...

Как вызвать функцию через указатель? - C++
Добрый день. Всех с наступающим))Здоровье Счастье и бабок))) Подскажите как правильно сделать Тестовый рабочий пример struct AmiVar ...

Как передать массив через указатель? - C++
Народ, такая проблема: при передаче в функцию массива через указатель, вся информация теряется и замещается бредом каким то, вот выдержка...

Как объявить указатель на массив через typedef и как инициализировать такой тип - C++
Как заставить заработать этот фрагмент кода? INT_L -- указатель на массив из 100 элементов типа char; Не получается в переменную C...

Как описать в структуре строку не через указатель - C++
Есть структура struct InfoBuf { size_t Len; char Data; / ??? static InfoBufType* Create(size_t Size, char* Val){ InfoBufType*...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bigredcat
365 / 312 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
20.03.2011, 16:37     Как предать указатель через LPARAM #2
Можно как-нибудь кидать указатель на объект между этими ф-ми?
Да, можно, но только в определенных точках программы. Например, при создании диалога при помощи функции 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
Ответ Создать тему
Опции темы

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