1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình C Windows 11_Ví dụ - bài tập

27 477 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Lập trình C trên Windows ví dụ và bài tập
Tác giả Nguyễn Đức Hoàng Hạ
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Công Nghệ Thông Tin
Thể loại Bài tập
Định dạng
Số trang 27
Dung lượng 619,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình C Windows

Trang 1

Lập trình C trên Windows

Ví dụ và Bài tập

Nguyễn Đức Hoàng Hạ Khoa CNTT – Trường ĐHKHTN

Email: ndhha@fit.hcmuns.edu.vn

Trang 4

hInstance, NULL );

• WS_OVERLAPPEDWINDOW = WS_OVERLAPPED |

WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX

Trang 5

DialogBox

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,LPSTR lpCmdLine,

int nCmdShow){

Trang 6

Resource

Trang 7

Resource

Trang 8

Resource

Trang 9

Resource

Trang 10

WndProc-DlgProc

• LRESULT CALLBACK WndProc(

HWND hWnd, UINT message,

WPARAM wParam, LPARAM lParam);

• INT_PTR CALLBACK dlgProc(

HWND hwndDlg, UINT uMsg,

WPARAM wParam, LPARAM lParam);

Trang 11

MOUSE

• WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCLK

Trang 12

Ví dụ 1 Dùng chuột vẽ đoạn thẳng

• Mô tả bài toán:

– Nhấn chuột trái chọn điểm đầu

– Nhấn chuột phải chọn điểm cuối

– Khi có thay đổi thì vẽ lại ra màn hình

Trang 13

P2.x = LOWORD(lParam); P2.y = HIWORD(lParam);

InvalidateRect(hWnd, NULL,TRUE); //Vẽ lại màn hình

• WM_PAINT:

MoveTo(hdc,P1.x, P1.y);

LineTo(hdc,P2.x, P2.y);

Trang 14

Bài tập 1

• Mô tả bài toán:

– Nhấn chuột trái chọn điểm đầu

– Thả chuột trái chọn điểm cuối

– Khi có thay đổi thì vẽ lại ra màn hình

Trang 15

TIMER

• UINT_PTR SetTimer(HWND hWnd,

UINT_PTR nID, UINT uElapse, //số nhịp TIMERPROC lpTimerFunc );

• WM_TIMER: wParam == nID

• 1 giây = 1000 nhịp

• Ví dụ: SetTimer(hWnd, 1, 500, NULL);

• Khi không dùng nữa thì dùng lệnh KillTimer để hủy:

KillTimer(hWnd, nID)

• Thường lệnh SetTimer được đặt trong sự kiện

WM_CREATE và KillTimer đặt trong sự kiện

WM_DESTROY

Trang 16

Ví dụ 2

Mô phỏng banh rơi

• Mô tả bài toán:

– Một quả banh rơi tự do từ độ cao H xuống nền rồi dội lên lại độ cao H

Trang 17

double v, //vận tốc hiện tại

double H=300; //độ cao tối đa

Trang 18

break;

Trang 20

L

Trang 22

case ID_BTN2:

//Xử lý nhấn nút 2break;

}

return 1;

Trang 23

Bài tập 3

• Thêm phím âm dương vào ví dụ 3

Trang 24

• Chay chương trình ở chế độ debug: F5

• Chạy chương trình không ở chế độ debug:

Ctrl+F5

• Muốn debug ở sự kiện nào thì phải đặt điểm dừng ở sự kiện đó Không thể chạy từng lệnh (F10, F11) tới vị trí đó được.

Trang 25

MSDN

Trang 26

26

Trang 27

MFC là gì?

Ngày đăng: 14/11/2012, 17:00

TỪ KHÓA LIÊN QUAN

w