Нужна помощь с CStatic
От: bilas  
Дата: 13.02.04 08:20
Оценка:
Люди, здравствуйте. Вот моя проблемка:
Делаю обьект CStatic и вывожу его в окне. Проблема состоит в следующем.Необходимо вывести график в этом элементе, функцию которого я задаю формулой.Проблема состоит именно в том, как реализовать такой график, чтобы он масштабировался в этом элементе.
Заранее спасибо за ответ.
Re: Нужна помощь с CStatic
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 13.02.04 08:23
Оценка:
Здравствуйте, bilas, Вы писали:

B>Люди, здравствуйте. Вот моя проблемка:

B>Делаю обьект CStatic и вывожу его в окне. Проблема состоит в следующем.Необходимо вывести график в этом элементе, функцию которого я задаю формулой.Проблема состоит именно в том, как реализовать такой график, чтобы он масштабировался в этом элементе.

ИМХО Вам стОит написать свой контрол, производный от CWnd. Или поискать на Code Project по словам "graph", "chart" — там много такого добра.
- Искренне ваш, Поросенок Пафнутий
Re[2]: Нужна помощь с CStatic
От: bilas  
Дата: 13.02.04 08:28
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, bilas, Вы писали:


B>>Люди, здравствуйте. Вот моя проблемка:

B>>Делаю обьект CStatic и вывожу его в окне. Проблема состоит в следующем.Необходимо вывести график в этом элементе, функцию которого я задаю формулой.Проблема состоит именно в том, как реализовать такой график, чтобы он масштабировался в этом элементе.

SDB>ИМХО Вам стОит написать свой контрол, производный от CWnd. Или поискать на Code Project по словам "graph", "chart" — там много такого добра.


Мм..спасибо за ответ, но нельзя ли как-нить попроще реализовать это, может есть какой-ниб легкий способ?Спасибо.
Re[3]: Нужна помощь с CStatic
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 13.02.04 08:33
Оценка:
Здравствуйте, bilas, Вы писали:

B>Здравствуйте, SchweinDeBurg, Вы писали:


SDB>>Здравствуйте, bilas, Вы писали:


B>>>Люди, здравствуйте. Вот моя проблемка:

B>>>Делаю обьект CStatic и вывожу его в окне. Проблема состоит в следующем.Необходимо вывести график в этом элементе, функцию которого я задаю формулой.Проблема состоит именно в том, как реализовать такой график, чтобы он масштабировался в этом элементе.

SDB>>ИМХО Вам стОит написать свой контрол, производный от CWnd. Или поискать на Code Project по словам "graph", "chart" — там много такого добра.


B>Мм..спасибо за ответ, но нельзя ли как-нить попроще реализовать это, может есть какой-ниб легкий способ?Спасибо.


Способа легче, чем скачать с CP десяток классов и выбрать по вкусу, я, честно говоря, не знаю. Да и руками это пишется не так уж долго.
- Искренне ваш, Поросенок Пафнутий
Re[3]: Нужна помощь с CStatic
От: Amon-RA  
Дата: 13.02.04 08:46
Оценка:
Здравствуйте, bilas, Вы писали:

B>Мм..спасибо за ответ, но нельзя ли как-нить попроще реализовать это, может есть какой-ниб легкий способ?Спасибо.


А это несложно. Создаешь наследника от CWnd. Рисуешь в нем что надо. Потом в диалоге пишешь так:


BOOL CDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();

    int nTop, nLeft;
    
    CRect Rect;
    CWnd* pWnd = GetDlgItem(IDC_YOUR_STATIC);
    pWnd->GetWindowRect(&Rect);
    pWnd->SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW);

    nTop = Rect.top-2*::GetSystemMetrics(SM_CYDLGFRAME)-::GetSystemMetrics(SM_CYCAPTION);
    nLeft = Rect.left;
    
    m_gr.Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(0, 0, 0, 0), this, 1);
    m_gr.SetWindowPos(&wndTop, nLeft, nTop, Rect.Width(), Rect.Height(), SWP_SHOWWINDOW);
    
    
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}


Где m_gr — твой график
Re[4]: Нужна помощь с CStatic
От: bilas  
Дата: 13.02.04 08:53
Оценка:
Здравствуйте, Amon-RA, Вы писали:

AR>Здравствуйте, bilas, Вы писали:


B>>Мм..спасибо за ответ, но нельзя ли как-нить попроще реализовать это, может есть какой-ниб легкий способ?Спасибо.


AR>А это несложно. Создаешь наследника от CWnd. Рисуешь в нем что надо. Потом в диалоге пишешь так:



AR>
AR>BOOL CDlg::OnInitDialog() 
AR>{
AR>    CDialog::OnInitDialog();

AR>    int nTop, nLeft;
    
AR>    CRect Rect;
AR>    CWnd* pWnd = GetDlgItem(IDC_YOUR_STATIC);
    pWnd->>GetWindowRect(&Rect);
    pWnd->>SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW);

AR>    nTop = Rect.top-2*::GetSystemMetrics(SM_CYDLGFRAME)-::GetSystemMetrics(SM_CYCAPTION);
AR>    nLeft = Rect.left;
    
AR>    m_gr.Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(0, 0, 0, 0), this, 1);
AR>    m_gr.SetWindowPos(&wndTop, nLeft, nTop, Rect.Width(), Rect.Height(), SWP_SHOWWINDOW);
    
    
AR>    return TRUE;  // return TRUE unless you set the focus to a control
AR>                  // EXCEPTION: OCX Property Pages should return FALSE
AR>}


AR>


AR>Где m_gr — твой график


Спасибо большое, ребята. Я только начинающий, поэтому попробую разобраться. Спасибо большое за код и помощь. Но если что — я ещё раз тут запостю сообщение, ок?
Re[4]: Нужна помощь с CStatic
От: bilas  
Дата: 13.02.04 09:23
Оценка:
Здравствуйте, Amon-RA, Вы писали:

AR>Здравствуйте, bilas, Вы писали:


B>>Мм..спасибо за ответ, но нельзя ли как-нить попроще реализовать это, может есть какой-ниб легкий способ?Спасибо.


AR>А это несложно. Создаешь наследника от CWnd. Рисуешь в нем что надо. Потом в диалоге пишешь так:



AR>
AR>BOOL CDlg::OnInitDialog() 
AR>{
AR>    CDialog::OnInitDialog();

AR>    int nTop, nLeft;
    
AR>    CRect Rect;
AR>    CWnd* pWnd = GetDlgItem(IDC_YOUR_STATIC);
    pWnd->>GetWindowRect(&Rect);
    pWnd->>SetWindowPos(NULL, 0, 0, 0, 0, SWP_HIDEWINDOW);

AR>    nTop = Rect.top-2*::GetSystemMetrics(SM_CYDLGFRAME)-::GetSystemMetrics(SM_CYCAPTION);
AR>    nLeft = Rect.left;
    
AR>    m_gr.Create(NULL, NULL, WS_CHILD|WS_VISIBLE, CRect(0, 0, 0, 0), this, 1);
AR>    m_gr.SetWindowPos(&wndTop, nLeft, nTop, Rect.Width(), Rect.Height(), SWP_SHOWWINDOW);
    
    
AR>    return TRUE;  // return TRUE unless you set the focus to a control
AR>                  // EXCEPTION: OCX Property Pages should return FALSE
AR>}


AR>


AR>Где m_gr — твой график


2Amon-RA:
У меня статик должен разместиться в потомке CFormView.А m_gr — это обьект моего СStatic'а?
Re[5]: Нужна помощь с CStatic
От: Amon-RA  
Дата: 13.02.04 09:27
Оценка:
Здравствуйте, bilas, Вы писали:

B>2Amon-RA:

B>У меня статик должен разместиться в потомке CFormView.А m_gr — это обьект моего СStatic'а?

Нет, m_gr — это наследник от CWnd — член класса-потомка CFormView. Никакого объекта CStatic-а нету, у него просто идентификатор — IDC_YOUR_STATIC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.