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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
Гость
Сообщений: n/a
#1

Указатель на функцию член - C++

13.11.2006, 19:17. Просмотров 2677. Ответов 1
Метки нет (Все метки)

Вот урезаный донельзя код:

class Window
{

public:

...

bool registerClassEx()
{
WNDCLASSEX wcx;
...

wcx.lpfnWndProc = &Window:roc;

...

}


LRESULT CALLBACK proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
...
}

};

В общем, те, кто знаком с Win32 поймут что я хочу сделать.

Объясню в чем проблема:

В wcx.lpfnWndProc должен лежать указатель на функцию обработки сообщения, эта функция и есть функция proc, но как же достать её адрес, когда я нахожусь в функции registerClassEx() ???

Просто proc компилятор не съедает, &Window:roc съедает, но не может привести

LRESULT (__stdcall Window::* )(HWND,UINT,WPARAM,LPARAM)

к типу LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)

а именно это мне и надо.

Но как это сделать?!

Проблема решается, если сделать proc статичной (static), но это мне не подходит.

Помогите пожалуйста!
Уже несколько часов не могу ничего с этим поделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2006, 19:17     Указатель на функцию член
Посмотрите здесь:

Указатель на функцию-член - C++
// howmany.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <conio.h>...

Указатель на функцию-член - C++
Имеем следующий код: #include <iostream> using namespace std; class Windows { public: void OpenWindows() { cout << "Open...

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

Указатель на функцию-член - C++
Доброго времени суток, возникла следующая ситуация: Приведу пример: class A { public: void a() { cout << "hello!"; }; }; ...

Указатель на функцию - член класса. - C++
делаю так: class c1 { void foo(); } class c2 { void (*fp)();

Указатель на функцию-член класса - C++
Нужно передать указатель на функцию класса A изнутри самого класса А в функцию, в качестве аргумента классу B. #include <Windows.h>...

Указатель на фунцкию-член - C++
class Letter { public: void(Letter::*side)(); Letter() { side = front; side = right_flang; side = top;

указатель на член в массиве - C++
Добрый день! Возникла проблемка... грубо говоря есть два массива x и y, как к примеру указателю x присвоить указатель y? через &x не дается...

Указатель на ф-цию член класса - C++
Чёрная магия или я бот? g++ sub.cpp:21: error: expected unqualified-id before ‘*’ token sub.cpp:21: error: must use ‘.*’ or...

Указатель на член структуры/класса - C++
Всем привет! Помогите разобраться. Пусть есть такой код: template <typename Type> class DynamicQueue { private: class Node { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Гость
Сообщений: n/a
13.11.2006, 19:19     Указатель на функцию член #2
Вроде теперь без смайликов

Цитата Сообщение от незарегистрированный Посмотреть сообщение
Вот урезаный донельзя код:

class Window
{

public:

...

bool registerClassEx()
{
WNDCLASSEX wcx;
...

wcx.lpfnWndProc = &Window:: proc;

...

}


LRESULT CALLBACK proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
...
}

};

В общем, те, кто знаком с Win32 поймут что я хочу сделать.

Объясню в чем проблема:

В wcx.lpfnWndProc должен лежать указатель на функцию обработки сообщения, эта функция и есть функция proc, но как же достать её адрес, когда я нахожусь в функции registerClassEx() ???

Просто proc компилятор не съедает, &Window:: proc съедает, но не может привести

LRESULT (__stdcall Window::* )(HWND,UINT,WPARAM,LPARAM)

к типу LRESULT (__stdcall *)(HWND,UINT,WPARAM,LPARAM)

а именно это мне и надо.

Но как это сделать?!

Проблема решается, если сделать proc статичной (static), но это мне не подходит.

Помогите пожалуйста!
Уже несколько часов не могу ничего с этим поделать.
Ответ Создать тему
Опции темы

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