Передача указателя на метод класса в другой клас
От: Xak.PC Россия  
Дата: 03.11.07 23:47
Оценка:
Как можно передать указатель на метод одного класса другому?
никак не могу добиться результата.
пока дошел до этого:
я хочу сказать классу C2DPolygon каким образом рисовать пиксель.

файл "C3DPolygon.hpp"
#include "window.h"

/*...*/

class C2DPolygon
{
public:
    std::vector<C2DPoint> m_points;
    int m_texture;    

public:
    C2DPolygon();
    ~C2DPolygon();

    void (*CMainWin::putpixel)(int,int,char);

    void DrawScanline(int x1, int x2, int y, char c);
        /*...*/
};

/*...*/

///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/*** 2D ***/
inline C2DPolygon::C2DPolygon()
{
}

inline C2DPolygon::~C2DPolygon()
{
}

inline void C2DPolygon::DrawScanline(int x1, int x2, int y, char c)
{
    for (int x = x1; x<=x2; x++);
        (*putpixel)(x,y,c);
}


файл "window.h"
#include "C3DPolygon.hpp"

class CMainWin : public CFrameWnd
{
private:
        /*...*/

public:    
    CMainWin();
    DECLARE_MESSAGE_MAP();

        /*...*/

    static void PutPixel(int x, int y, char c)
    {
        SetPixel(dc,x,y,RGB(c,c,c));
    }

    /*...*/
};


тут, в модуле C3DPolygon.hpp не виден класс CMainWin

Что тут не так? может быть сама идея в корне не верна?
Re: Передача указателя на метод класса в другой клас
От: VoidEx  
Дата: 04.11.07 00:58
Оценка: +1
Здравствуйте, Xak.PC, Вы писали:

XP> ...


А зачем указатель на метод, если SetPixel статический?
Просто указатель на функцию.
Хотя сама идея очень странная, пиксель через указатель на функцию рисовать, да еще и SetPixel'ем, тем еще тормозом.
Лучше считать изображение в буфер, там его менять своим set_pixel, банально пишущим в массив пикселей, а измененное изображение
уже копировать, куда надо

По теме:
— GetDIBits
— SetDIBits
— SetDIBitsToDevice
Re[2]: Передача указателя на метод класса в другой клас
От: Xak.PC Россия  
Дата: 04.11.07 07:09
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Здравствуйте, Xak.PC, Вы писали:


XP>> ...


VE>А зачем указатель на метод, если SetPixel статический?

VE>Просто указатель на функцию.
VE>Хотя сама идея очень странная, пиксель через указатель на функцию рисовать, да еще и SetPixel'ем, тем еще тормозом.
VE>Лучше считать изображение в буфер, там его менять своим set_pixel, банально пишущим в массив пикселей, а измененное изображение
VE>уже копировать, куда надо

VE>По теме:

VE>- GetDIBits
VE>- SetDIBits
VE>- SetDIBitsToDevice

спасибо!
то что статический — это я просто разные варианты обкатывал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.