de thi mon c 2045

7 7 0
de thi mon c 2045

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

Thông tin tài liệu

ĐỀ THI MƠN LẬP TRÌNH C TRÊN WINDOWS Đề thi mẫu số 1 Thời gian: 60 phút. Được phép sử dụng tài liệu Câu 1. Anh (chị) hãy trình bày (phân tích) tổng qt các đặc điểm chính của các ứng  dụng trên MS Windows Câu 2. Anh (chị) hãy trình bày mơ hình thể hiện quy trình nạp và zoom ảnh bitmap? Giải  thích mơ hình (các hàm) thơng qua cơ chế thao tác và thể hiện các đối tượng đồ  họa trên MS Windows Câu 3  Anh (chị) hãy giải thích đoạn code dưới đây, bằng cách cho biết mục đích của  chương trình là gì, thể hiện qua các hàm, biến được cài đặt như thế nào; quy  trình khi chương trình thực thi trong thực tế ra sao? LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM  lParam) { int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc; switch (message)  { case WM_COMMAND: wmId    = LOWORD(wParam);  wmEvent = HIWORD(wParam);  switch (wmId) { case IDM_GETTEXT: if(DialogBox(hInst, (LPCTSTR)IDD_GETTEXT, hWnd,  (DLGPROC)GetText)==IDOK) InvalidateRect(hWnd, NULL, TRUE); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); RECT rt; GetClientRect(hWnd, &rt); DrawText(hdc, szContent, strlen(szContent), &rt, uAlignment); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } LRESULT CALLBACK GetText(HWND hDlg, UINT message, WPARAM wParam, LPARAM  lParam) { switch (message) { case WM_INITDIALOG: uAlignment = 0; // uAlignment là một biến toàn cục kiểu UINT CheckDlgButton(hDlg, IDC_SINGLELINE, BST_CHECKED); CheckRadioButton(hDlg, IDC_TOP, IDC_BOTTOM, IDC_VCENTER); CheckRadioButton(hDlg, IDC_LEFT, IDC_RIGHT, IDC_CENTER); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_SINGLELINE: if(IsDlgButtonChecked(hDlg, IDC_SINGLELINE)==BST_CHECKED) { CheckDlgButton(hDlg, IDC_SINGLELINE, BST_UNCHECKED); EnableWindow(GetDlgItem(hDlg, IDC_TOP), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_VCENTER), FALSE); EnableWindow(GetDlgItem(hDlg, IDC_BOTTOM), FALSE); } else { CheckDlgButton(hDlg, IDC_SINGLELINE, BST_CHECKED); EnableWindow(GetDlgItem(hDlg, IDC_TOP), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_VCENTER), TRUE); EnableWindow(GetDlgItem(hDlg, IDC_BOTTOM), TRUE); } break; case IDC_TOP: case IDC_VCENTER: case IDC_BOTTOM: CheckRadioButton(hDlg, IDC_TOP, IDC_BOTTOM,  LOWORD(wParam)); break; case IDC_LEFT: case IDC_CENTER: case IDC_RIGHT: CheckRadioButton(hDlg, IDC_LEFT, IDC_RIGHT, LOWORD(wParam)); break; case IDOK: if(IsWindowEnabled(GetDlgItem(hDlg, IDC_TOP))) { uAlignment |= DT_SINGLELINE; if(IsDlgButtonChecked(hDlg, IDC_TOP)) uAlignment |= DT_TOP; else if(IsDlgButtonChecked(hDlg, IDC_VCENTER)) uAlignment |= DT_VCENTER; else if(IsDlgButtonChecked(hDlg, IDC_BOTTOM)) uAlignment |= DT_BOTTOM; } if(IsDlgButtonChecked(hDlg, IDC_LEFT)) uAlignment |= DT_LEFT; else if(IsDlgButtonChecked(hDlg, IDC_CENTER)) uAlignment |= DT_CENTER; else if(IsDlgButtonChecked(hDlg, IDC_RIGHT)) uAlignment |= DT_RIGHT; GetDlgItemText(hDlg, IDC_CONTENT, szContent,  MAX_LOADSTRING); // szContent là biến toàn cục kiểu TCHAR[] case IDCANCEL: EndDialog(hDlg, LOWORD(wParam)); return TRUE; } HPEN  CreatePen(int   nStyle,   int   nWidth,   COLORREF  crColor); HBRUSH CreateSolidBrush(COLORREF crSetColor); HGDIOBJ SelectObject(HDC hDC, HGDIOBJ hObj); BOOL DeleteObject(HGDIOBJ hObj); BOOL  Rectangle(HDC   hDC,   int   nLeft,   int   nTop,   int  nRight, int nBottom); *   Lưu ý trình bày chính xác trong phạm vi câu hỏi; khơng lan   man   Câu       viết   hàm   xử   lý   LRESULT   CALLBACK   WndProc(HWND,  UINT,   WPARAM,   LPARAM)    cửa   sổ   ... EnableWindow(GetDlgItem(hDlg, IDC_BOTTOM), TRUE); } break; case IDC_TOP: case IDC_VCENTER: case IDC_BOTTOM: CheckRadioButton(hDlg, IDC_TOP, IDC_BOTTOM,  LOWORD(wParam)); break; case IDC_LEFT: case IDC_CENTER: case IDC_RIGHT:... CheckRadioButton(hDlg, IDC_TOP, IDC_BOTTOM, IDC_VCENTER); CheckRadioButton(hDlg, IDC_LEFT, IDC_RIGHT, IDC_CENTER); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_SINGLELINE: if(IsDlgButtonChecked(hDlg, IDC_SINGLELINE)==BST_CHECKED)... MAX_LOADSTRING); // szContent là biến toàn? ?c? ? ?c? ?kiểu TCHAR[] case IDCANCEL: EndDialog(hDlg, LOWORD(wParam)); return TRUE; } HPEN  CreatePen(int   nStyle,   int   nWidth,   COLORREF  crColor); HBRUSH CreateSolidBrush(COLORREF crSetColor);

Ngày đăng: 03/12/2022, 21:38

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

  • Đang cập nhật ...

Tài liệu liên quan