BIG_AL Опубликовано 11 ноября, 2005 Жалоба Поделиться Опубликовано 11 ноября, 2005 Вечер добрый. У меня такой вопрос: Как нарисовать круг по заданным координатам центра и радиусу? на VC++ Знаю, что рисовать через Ellipse. использовать dc, определять клиентские области рисования и т.д. Но нормально работающую програмку написать не могу! Всё компилируется, но ничего не видно. Помогите плизззз :) Тока попроще если можно с использованием MFC Может проще будет на WinApi? от примерчика тоже не откажусь. И ещё один маленький вопрос из той же темы: как соединить 2 точки прямой? Опять же MoveTo,LineTo...но как написать полностью работающую программу? Да...Delphi был попроще... НО позарез нужно на VC++ с использованием MFC Ссылка на комментарий Поделиться на другие сайты Поделиться
Asenka Опубликовано 11 ноября, 2005 Жалоба Поделиться Опубликовано 11 ноября, 2005 BIG_AL: Приведи не работающий код, общественность посмотрит, может ткнет на ошибку. А на "все написал, но ничего не видно" - тебе только телепат ответить сможет, где и что у тебя не так :) Ссылка на комментарий Поделиться на другие сайты Поделиться
BIG_AL Опубликовано 11 ноября, 2005 Автор Жалоба Поделиться Опубликовано 11 ноября, 2005 ОК, исправляюсь (я вообще-то в общем спрашивал :D ) Значит перефразирую свой вопрос: как ПРАВИЛЬНО пользоватся процедурой: BOOL CDC::Ellipse(int upX, int upY, int lowX, int lowY); ну пишу: CPaintDC pDC(this); RECT clientRect; this->GetClientRect(&clientRect); CPen BlackPen(PS_SOLID,1,RGB(0,0,0)); pDC.SelectObject(&BlackPen); pDC.Ellipse(10,10,100,100); вешаю на обработчик кнопки. Запускаю и ничего не рисуется. что нужно и ГДЕ ещё что-то прописать? Раньше писал всё на Delphi,а теперь парюсь с MFC :( Написал курсовик по ООП : "Триангуляция по методу Делоне" в консоле. А хочется шоб оно ж и малевало как-то эти треугольнички, а не тока координаты считало :) Ссылка на комментарий Поделиться на другие сайты Поделиться
BIG_AL Опубликовано 12 ноября, 2005 Автор Жалоба Поделиться Опубликовано 12 ноября, 2005 Хм... покапался чуть-чуть и вот к чему пришёл: Меня заинтересовала функция void CsdfDlg::OnPaint() рисует иконку или что-то типа того. Решил же написать похожую функцию: (программа называется sdf): void CsdfDlg::Show(int x,int x1,int y1,int y2) { CPaintDC dc(this); dc.Ellipse(x, x1, y1, y2); } Определил её также как и определена CsdfDlg::OnPaint() в файлике sdfDlg.h afx_msg void OnPaint(); afx_msg void Show(int x,int x1,int y1,int y2); //моя функция По обработчику вызываю: void CsdfDlg::OnBnClickedButton1() { Show(10,10,80,80); } ничего не рисуется. Просмотрел опять же функцию CsdfDlg::OnPaint(). Решил вписать туда мою рисовалку: CPaintDC dc(this); dc.Ellipse(10, 10, 100, 100); Рисует! но мне нужно вызывать функцию с параметрами, а изменять не оч.хотелось.Решил закомментировать всю функцию CsdfDlg::OnPaint(). Клацаю по кнопочке - тоже рисует! Хм..странно. Смотрю дальше: if (IsIconic()) { ..... dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); // мне заинтеросовало это } Решил заменить название своей функции CsdfDlg::Show на CDialog::OnPaint(); Параметры она почему-то не захотела принимать,а определение её я не нашёл :) но она начинает рисовать сразу при создании формы! что не есть good. Мне нужно чтобы рисовало когда я вызову эту процедуру, а не при создании окна. Подскажите, как можно по-людски это всё организовать? Или всё делать таким же макаром? комментировать всю CsdfDlg::OnPaint() и определять свои функции? Может вопрос и не совсем ворректный, но я тока недавно начал работать с MFC. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти