C ++: как получить доступ к объекту, созданному в Form1? - PullRequest
0 голосов
/ 18 мая 2010

Я новичок в C ++, я использую VC ++ 2008, я создал форму с pictureBox внутри с графическим дизайном, расположенный в Form1.h.

для стабильности кода, я пытаюсь разделить beit между графическим интерфейсом и классами обработки, поэтому я создал новый класс в process.h, который содержит код для изменения изображения в pictureBox, проблема в том, что я не могу получить доступ к объекту pictureBox из процесса .h потому что он находится в другом классе.

примечание: имя класса формы - Form1 внутри пространства имен try, имя класса процесса - processImage

Я попытался создать функцию setter с именем setImage () в классе Form1, чтобы установить путь к изображению для imageBox obj, но я не могу сделать объект Form1 для вызова этой функции, потому что класс Form1 неизвестен. для заметки я попытался включить "Form1.h", но он до сих пор неизвестен.

есть ли решение моей проблемы?

спасибо за вашу помощь ..

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Я не уверен, что смог понять вашу проблему, но вот несколько подсказок.

Вы говорите, что включили Form1.h, но Form1 все еще не виден. Это может быть проблемой, когда A включает B, а B включает A, что может быть решено с помощью предварительных объявлений. Убедитесь, что вы не забыли пространства имен.

хиджра:

#include "B.h"

namespace NamespaceB
{
    class B; // forward declaration
}

namespace NamespaceA
{    
    class A
    {        
        NamespaceB::B m_pB;        
    };    
}

B.h:

#include "A.h"

namespace NamespaceA
{
    class A; // forward declaration
}

namespace NamespaceB
{    
    class B
    {        
        NamespaceA::A* m_pA;        
    };    
}
0 голосов
/ 18 мая 2010

Создайте класс ProcessImage и сделайте объект этого класса переменной-членом класса Form1. Создайте открытый метод setImage в классе ProcessImage. Всякий раз, когда изображение в графическом окне обновляется, вызывайте этот метод.

...