Bài giảng Giao tiếp máy tính

38 68 0
Bài giảng Giao tiếp máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giao tieáp quang baùo vôùi maùy tính ñöôïc thieát keá döïa treân cô sôû laäp trình WINDOWS. Chöông trình giao tieáp quang baùo ñöôïc vieát döïa treân öùng duïng thö vieän cuûa MFC. Ñaây laø kyõ thuaät laäp trình phaùt trieån phaàn meàn döïa vaøo thö vieän coù saün cuûa MFC. Laäp trình WINDOWS laø xöû lyù haøng loaït caùc söï kieän phaùt sinh trong khi chaïy öùng duïng. Vì vaäy maø chöông trình luoân luoân chaïy trong moät voøng laëp chôø söï kieän. Caùc söï kieän lieän quan ñeán phaàn meàm giao tieáp quang baùo

GVHD: PHẠM HÙNG KIM KHÁNH CHƯƠNG II: LVTN: QUANG BÁO GIAO TIẾP MÁY TÍNH I GIỚI THIỆU Giao tiếp quang báo với máy tính thiết kế dựa sở lập trình WINDOWS Chương trình giao tiếp quang báo viết dựa ứng dụng thư viện MFC Đây kỹ thuật lập trình phát triển phần mền dựa vào thư viện có sẵn MFC Lập trình WINDOWS xử lý hàng loạt kiện phát sinh chạy ứng dụng Vì mà chương trình luôn chạy vòng lặp chờ kiện Các kiện liện quan đến phần mềm giao tiếp quang báo: 1.1 Sự kiện tạo file hình ảnh Để tạo file hình ảnh liên quan đến hàng loạt kiện: Sự kiện di chuyển chuột vùng làm việc chương trình báo cho biết chuột di chuyển tọa độ điểm ảnh Nếu vùng làm việc báo hết Sự kiện nhấn chuột trái vùng làm việc thay đổi điểm ảnh tuỳ thuộc vào thuộc tính việc chọn màu Nếu vùng làm việu xử lý hết Sự kiện nhấn chuột phải tạo menu để chọn thuộc tính 1.2 Sự kiện quang báo gửi liệu Tuỳ thuộc vào liệu mà phần giao tiếp tiếp tục xử lý SVTH: Đặng Tiến Dũng Trang 145 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO II NGUYÊN LÝ HOẠT ĐỘNG Khi mở giao diện chương trình tự động chọn new file Lúc chương trình cho phép người soạn thảo tác động vào để soạn thảo file hình ảnh cho quang báo Soạn thảo cách sử dụng chuột Nhấn chuột trái vùng làm việc để vẽ điểm ảnh Để thay đổi màu sắc, kích thước chọn thuộc tính công cụ Sau soạn thảo xong save lại với file có đuôi (.HBA) Do file văn WINDOWS có sẵn nên cần soạn file text bình thường sau save file có đuôi (.VBA) Gửi quang báo truyền file biên soạn sẵn máy tính cho quang báo Khi mở giao diện gửi quang báo, máy tính gửi mã lệnh thông báo cho quang báo biết có tồn máy tính quang báo Khi quang báo nhận mã lệnh quang báo gửi liệu trả lời Và máy tính nhận việc bắt tay máy tính quang báo coi thành công Tiếp theo máy tính gửi tiếp mã lệnh yêu cầu bên quang báo cho biết thuộc tính dung lượng Nếu máy tính nhận liệu thuộc tính chương trình chuyển đổi thành liệu hiển thò gúp cho người sử dụng biết đồng thời cho phép chọn file để gửi Nếu vấn đề dung lượng , tên file việc truyền file bắt đầu Khi tiến độ báo 100% việc truyền file kết thúc SVTH: Đặng Tiến Dũng Trang 146 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO III LƯU ĐỒ GIẢI THUẬT 3.1 Sự kiện di chuyển chuột START N Vùng làm việc ? Y Hiển thò tọa độ điểm ảnh Không hiển thò Thoát 3.2 Sự kiện nhấn chuột trái START Vùng làm việc ? N Y Vẽ điểm ảnh toạ độ hiển thò Không vẽ Thoát SVTH: Đặng Tiến Dũng Trang 147 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO 3.3 Lưu đồ gửi quang báo START Lặp = N Bắt tay ? N Y Lặp +1, Lặp =10 ? Y Cho phép chọn file Đủ điều kiện ? N Y Biên dòch liệu Truyền liệu Thoát SVTH: Đặng Tiến Dũng Trang 148 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO IV PHẦN MỀM: // hinhanhView.cpp : implementation of the CHinhanhView class #include "stdafx.h" #include "hinhanh.h" #include "hinhanhDoc.h" #include "hinhanhView.h" #include "MainFrm.h" #include "SenDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = FILE ; #endif ///////////////////////////////////////////////////////////////////////////// // CHinhanhView IMPLEMENT_DYNCREATE(CHinhanhView, CScrollView) BEGIN_MESSAGE_MAP(CHinhanhView, CScrollView) //{{AFX_MSG_MAP(CHinhanhView) ON_WM_MOUSEMOVE() ON_WM_LBUTTONDOWN() ON_WM_RBUTTONDOWN() ON_COMMAND(ID_OPTIONS_MAUDEN, OnOptionsMauden) ON_UPDATE_COMMAND_UI(ID_OPTIONS_MAUDEN, OnUpdateOptionsMauden) ON_UPDATE_COMMAND_UI(ID_OPTIONS_MAUDO, OnUpdateOptionsMaudo) ON_COMMAND(ID_OPTIONS_MAUDO, OnOptionsMaudo) ON_COMMAND(ID_OPTIONS_MAUVANG, OnOptionsMauvang) ON_UPDATE_COMMAND_UI(ID_OPTIONS_MAUVANG, OnUpdateOptionsMauvang) ON_COMMAND(ID_OPTIONS_MAUXANH, OnOptionsMauxanh) ON_UPDATE_COMMAND_UI(ID_OPTIONS_MAUXANH, OnUpdateOptionsMauxanh) ON_COMMAND(ID_OPTIONS_THUNHO, OnOptionsThunho) SVTH: Đặng Tiến Dũng Trang 149 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO ON_COMMAND(ID_OPTIONS_PHONGTO, OnOptionsPhongto) ON_COMMAND(ID_FILE_SAVE, OnFileSave) ON_COMMAND(ID_FILE_OPEN, OnFileOpen) ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) ON_COMMAND(ID_FILE_NEW, OnFileNew) ON_COMMAND(ID_OPTIONS_GUUQUANGBAO, OnOptionsGuuquangbao) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CHinhanhView construction/destruction CHinhanhView::CHinhanhView() { // TODO: add construction code here for (long i=0;iSelectObject(&choito); pDC->Rectangle (0, 0, 2000, 1000); pDC->SelectObject(choitocu); choito.DeleteObject(); int i,j; for ( i=0;iRectangle (i*m_Size, j*m_Size, (i+1)*m_Size, (j+1)*m_Size); pDC->SelectObject(choitocu); choito.DeleteObject(); } } void CHinhanhView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: calculate the total size of this view SVTH: Đặng Tiến Dũng Trang 151 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO sizeTotal.cx = 128*m_Size; sizeTotal.cy = 16*m_Size; SetScrollSizes(MM_TEXT, sizeTotal,CSize(m_Size,m_Size), CSize(m_Size,m_Size)); } // CHinhanhView printing BOOL CHinhanhView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CHinhanhView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CHinhanhView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } // CHinhanhView diagnostics #ifdef _DEBUG void CHinhanhView::AssertValid() const { CScrollView::AssertValid(); } void CHinhanhView::Dump(CDumpContext& dc) const { CScrollView::Dump(dc); } CHinhanhDoc* CHinhanhView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CHinhanhDoc))); return (CHinhanhDoc*)m_pDocument; } #endif //_DEBUG // CHinhanhView message handlers void CHinhanhView::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default SVTH: Đặng Tiến Dũng Trang 152 GVHD: PHẠM HÙNG KIM KHAÙNH LVTN: QUANG BAÙO CPoint a = GetDeviceScrollPosition(); CString str; CMainFrame* pMainFrm=(CMainFrame*)AfxGetMainWnd(); if ((point.x+a.xSelectObject(choitocu); SVTH: Đặng Tiến Dũng Trang 153 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO choito.DeleteObject(); } CScrollView::OnLButtonDown(nFlags, point); } void CHinhanhView::OnOptionsMauden() { // TODO: Add your command handler code here m_Thamsomau = 'a'; m_Mauden = true; m_Maudo = false; m_Mauxanh = false; m_Mauvang = false; } void CHinhanhView::OnUpdateOptionsMauden(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_Mauden); CMainFrame* pMainFrm=(CMainFrame*)AfxGetMainWnd(); pMainFrm->SetWindowText("Quang bao"); } void CHinhanhView::OnUpdateOptionsMaudo(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here pCmdUI->SetCheck(m_Maudo); } void CHinhanhView::OnOptionsMaudo() { // TODO: Add your command handler code here m_Thamsomau = 'b'; m_Mauden = false; m_Maudo = true; m_Mauxanh = false; m_Mauvang = false; } void CHinhanhView::OnOptionsMauvang() { // TODO: Add your command handler code here m_Thamsomau = 'd'; m_Mauden = false; SVTH: Đặng Tiến Dũng Trang 154 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO array.Add(53); } break; case 'Ị': { array.Add(240); array.Add(53); } break; case 'J':array.Add(56); break; case 'K':array.Add(59); break; case 'L':array.Add(62); break; case 'M':array.Add(65); break; case 'N':array.Add(68); break; case 'P':array.Add(80); break; case 'Q':array.Add(83); break; case 'R':array.Add(86); break; case 'S':array.Add(89); break; case 'T':array.Add(91); break; case 'V':array.Add(100); break; case 'W':array.Add(103); break; case 'X':array.Add(106); break; case 'Z':array.Add(112); break; case 'b':array.Add(121); break; SVTH: Đặng Tiến Dũng Trang 168 GVHD: PHẠM HÙNG KIM KHAÙNH LVTN: QUANG BAÙO case 'c':array.Add(123); break; case 'd':array.Add(125); break; case 'ñ':array.Add(127); break; case 'f':array.Add(133); break; case 'g':array.Add(135); break; case 'h':array.Add(137); break; case 'i':array.Add(139); break; case 'í': { array.Add(236); array.Add(139); } break; case 'ì': { array.Add(237); array.Add(139); } break; case 'ỉ': { array.Add(238); array.Add(139); } break; case 'ó': { array.Add(239); array.Add(139); } break; case 'ò': SVTH: Đặng Tiến Dũng Trang 169 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO { array.Add(240); array.Add(139); } break; case 'j':array.Add(140); break; case 'k':array.Add(142); break; case 'l':array.Add(144); break; case 'm':array.Add(145); break; case 'n':array.Add(148); break; case 'p':array.Add(156); break; case 'q':array.Add(158); break; case 'r':array.Add(160); break; case 's':array.Add(162); break; case 't':array.Add(164); break; case 'v':array.Add(170); break; case 'w':array.Add(172); break; case 'x':array.Add(175); break; case 'z':array.Add(179); break; case ' ':array.Add(165); break; case '*':array.Add(181); break; case '/':array.Add(183); break; SVTH: Đặng Tiến Dũng Trang 170 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BÁO case '+':array.Add(185); break; case '-':array.Add(187); break; case '(':array.Add(189); break; case ')':array.Add(190); break; case '"':array.Add(191); break; case '.':array.Add(192); break; case ':':array.Add(193); break; case ',':array.Add(194); break; case ';':array.Add(195); break; case '!':array.Add(196); break; case '@':array.Add(197); break; case '%':array.Add(200); break; case '?':array.Add(202); break; case '$':array.Add(204); break; case '#':array.Add(206); break; case '':array.Add(211); break; case '=':array.Add(213); break; case '&':array.Add(215); break; } SVTH: Đặng Tiến Dũng Trang 171 GVHD: PHẠM HÙNG KIM KHÁNH LVTN: QUANG BAÙO if((str.GetAt(i)=='^')&&(i+1

Ngày đăng: 13/04/2019, 16:02

Tài liệu cùng người dùng

Tài liệu liên quan