Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод графики 
:(
    Опции темы
Baa
Дата 16.4.2003, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Значит не паинт у тя машину вешает...
Так и будем гадать на кофейной гуще?


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
shedon
Дата 16.4.2003, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Вешает паинт, т.к если его убрать то всё OK.
Этот паинт находится в дочернем окне(Child), которое запускается из другого диалогового окна.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Baa
Дата 16.4.2003, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



Вобщем, без кода больше ничего сказать не могу...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
shedon
Дата 16.4.2003, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Проблема похоже в том что паинт запускается постоянно
А в коде не чего интересного нет:

Код

#include "stdafx.h"
#include "EtalonFM.h"
#include "KalibrDlg.h"

#include <math.h>


// CKalibrDlg dialog

IMPLEMENT_DYNAMIC(CKalibrDlg, CDialog)
CKalibrDlg::CKalibrDlg(CEtalonFMDlg * p)
: CDialog(CKalibrDlg::IDD, p)
, m_freqmod(20)
, m_x(0)
, m_y(150)
, lpPen(NULL)
, oldPen(NULL)
, m_div(8)
, m_add(80)
, m_pogr(0)
, f_paint(TRUE)
{
p_Etalon = p;
}

CKalibrDlg::~CKalibrDlg()
{
}

void CKalibrDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTBACK, m_ctrlback);
DDX_Control(pDX, IDC_BUTADD, m_ctrladd);
DDX_Control(pDX,IDC_OTMENA, m_ctrlcancel);
DDX_Text(pDX, IDC_EDIT1, m_freqmod);
DDV_MinMaxInt(pDX, m_freqmod, 20, 200000);
DDX_Control(pDX, IDC_SETSHOW, m_ctrlsetshow);
DDX_Control(pDX, IDC_S555, m_s555);
DDX_Text(pDX, IDC_POGR, m_pogr);
DDV_MinMaxDouble(pDX, m_pogr, 0, 100);
}

BEGIN_MESSAGE_MAP(CKalibrDlg, CDialog)
ON_WM_DESTROY()
ON_WM_PAINT()
ON_BN_CLICKED(IDC_OTMENA, OnBnClickedOtmena)
ON_BN_CLICKED(IDC_BUTBACK, OnBnClickedButback)
ON_BN_CLICKED(IDC_BUTADD, OnBnClickedButadd)
ON_BN_CLICKED(IDC_BUTTON2, OnBnClickedBol)
ON_BN_CLICKED(IDC_BUTTON1, OnBnClickedMen)
END_MESSAGE_MAP()

//Initialization of dialog...
BOOL CKalibrDlg::OnInitDialog()
{
CDialog::OnInitDialog();

p_Etalon->f_indexwindow = I_Kalibrator;

m_DC = m_ctrlsetshow.GetDC();
m_DC = m_s555.GetDC();

lpPen = new CPen(PS_SOLID, 2, RGB(0, 0, 0));
oldPen = m_DC->SelectObject(lpPen);

lpBrush = lpBrush = new CBrush(4, RGB(0, 200, 0) );  
oldBrush = m_DC->SelectObject( lpBrush );

m_DC->MoveTo(m_x, m_y);

 return TRUE;
}

// CKalibrDlg message handlers

void CKalibrDlg::OnPaint()
{
if(f_paint)
{
 m_DC->Rectangle(0, 0, 328, 280);

  for(m_x; m_x < 325; m_x++)
  {
   m_y = 150 + m_add*sin(m_x/m_div);
   m_DC->LineTo(m_x, m_y);
   UpdateData( FALSE );
  }

 f_paint = FALSE;
}
}
void CKalibrDlg::OnDestroy()
{
delete lpPen;
delete lpBrush;
delete this;
}

void CKalibrDlg::OnBnClickedOtmena()
{
 OnCancel();
}

void CKalibrDlg::OnBnClickedButback()
{
}

void CKalibrDlg::OnBnClickedButadd()
{
m_ctrlback.EnableWindow( TRUE );
UpdateData( FALSE );
}

void CKalibrDlg::OnBnClickedBol()
{
m_div++;
m_x = 0;
m_DC->MoveTo(m_x, 100);
f_paint = TRUE;
}

void CKalibrDlg::OnBnClickedMen()
{
m_div--;
m_x = 0;
m_DC->MoveTo(m_x, 100);
f_paint = TRUE;
}



--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Baa
Дата 16.4.2003, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



если очень надо - скинь проект на мыло... посморю в чем дело, но лучше попробуй сам разобраться... пока просматривал код, чуть не уснул... там есть места, в которых откровенный берд написан навроде такого: lpBrush = lpBrush = new CBrush(4, RGB(0, 200, 0) );
или
m_DC = m_ctrlsetshow.GetDC();
m_DC = m_s555.GetDC();


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Voker57
Дата 16.4.2003, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



По ходу онпэйнт не тогда запускается (на каждом движении) а надо по вызову...


--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
shedon
Дата 16.4.2003, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Я понял не было вызова CDialog::OnPaint();


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
Sheff
Дата 16.4.2003, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

Репутация: 3
Всего: 3



А зачем в цикле UpdateData, может лучше за цикл вынести


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
Gannibal
Дата 17.4.2003, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: нет
Всего: 17



liudi kakije problemy v grafi8ke poprobujte allegro neplocho v niom programirujetsia i netrudno v izuchenii zahodite na sait http://allegro.cc tam mnogo tutorialu i tekstov i ovyje versii allegra skachat' mozhna.. smile.gif


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.