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

C++

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

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

20.03.2011, 01:23. Просмотров 828. Ответов 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
Посмотрите здесь:

Как передать массив через указатель? C++
Как оброботать WindowProc(Handle, UINT uMsg, WPARAM wParam, LPARAM lParam); C++ Builder
Передача Float через SendMessage(LParam) C++ Builder
как обратиться к элементам массива через указатель? C++
C++ Как вызвать функцию через указатель?
C++ Как вызвать функцию через указатель?
C++ Как передать указатель на функцию через метод класса ?
C++ Как узнать тип, переданный через указатель на void?
C++ Как обратиться к элементам массива через указатель?
Как описать в структуре строку не через указатель C++
Как получить LPARAM по координатам курсора мыши? C++ WinAPI
C++ Как правильно передать массив через указатель?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bigredcat
364 / 311 / 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
Yandex
Объявления
20.03.2011, 16:37     Как предать указатель через LPARAM
Ответ Создать тему
Опции темы

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