Mình chưa thử nhưng cũng muốn tạo một area trên một Dialog để vẽ không biết có làm thế được không? Ứng dụng của bạn có tuơng tự như vậy không? Ai có kinh nghiệm giải đáp giúp
Ôi, trở lại với MFC, mọi vấn đề như menu, dialog , nhập xuất đã ok rùi, chỉ còn lại mảng đồ hoạ thôi.. Vì p dùng openGl nên khó quá, các bác bảo em cách vẽ dùng Device Context với, sao dùng ở class khác lại không được nhỉ
Hàm Onpaint trên CView thì vẽ bằng DC tốt, nhưng ở 1 class khác mà muốn dùng DC để vẽ thì...không vẽ được :(
Hướng giải quyết sẽ là j đây...........
đây là code trên class DVeDiemDlg:
Visual C++ Code:Lựa chọn code | Ẩn/Hiện code
void DVeDiemDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
OnOK();
UpdateData(TRUE); // lấy thông tin để vẽ
CPaintDC dc(this); // device context for painting
glLoadIdentity();
glTranslatef(-1,-1,0);
// Draw here
glo.mColor.setColor(0,0,1); // đặt màu..
glo.putPixel(glo.mPoint, 5, glo.mColor ); //vẽ điểm có toạ độ mPoint
// Finish painting, flush and SwapBuffer
glFlush();
SwapBuffers(dc.m_ps.hdc);
}
Các cài đặt khung nhìn + cửa sổ + size + chiếu đã xử lí ở CView::OnSize
Sau khi nhấn OK thì nó chẳng vẽ j cả :( , còn copy mấy hàm vẽ kia sang CView::Onpaint thì lại vẽ ngon. Giúp t với
__________________
Mình chưa thử nhưng cũng muốn tạo một area trên một Dialog để vẽ không biết có làm thế được không? Ứng dụng của bạn có tuơng tự như vậy không? Ai có kinh nghiệm giải đáp giúp
Nếu bạ đầu vẽ đấy thì không phải là MVC.
Khi bạn bắt sự kiện từ chuột, phím ... và các hàm OnXXX, thì cái bạn cần là update Document.
Sau đó gọi hàm UpdateWindow hoặc Invalidate để View tự vẽ lại.
Khi View vẽ ở hàm OnPaint : bạn lấy lại trạng thai của chương trình từ Document ra và vẽ theo