-
20-05-2009, 08:34 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cái này bạn dùng hàm invalidate(TRUE); đêw xóa hình ảnh cũ đi.Nhưng sẽ gây nháy hình đó.
View more random threads:
- Module32First Trong Hook Mouse Luôn Bị GetLastError 24
- hàm vẽ ảnh và xóa ảnh ??
- Hook nhiều hàm API không bị cash, làm như thế nào?
- Cách sử dụng rebar trong Win32 API như thế nào?
- Phân Biệt COM/COM+/DCOM + Tài Liệu
- Tại sao hàm while không sử dụng được trong hàm của file DLL hook?
- Send dữ liệu qua open socket id.
- Giả lập sự kiện nhấm phím cho chương trình epsxe
- Code của bài KeyView1 trong tài liệu của Charles Petzold. Giải thích giúp mình
- So sánh kiểu dữ liệu trong C Native và VC++ khi lập trình APIs
-
20-05-2009, 05:15 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lỗi khi kết hợp WM_MOUSEMOVE và BITMAP
Ý tưởng: lấy tọa độ chuột trong sự kiện WM_MOUSEMOVE để load ảnh bitmap.
Kết quả: mỗi khi di chuyển chuột ảnh di chuyển theo [IMG]images/smilies/clap_grin.gif[/IMG]
Lỗi cần khắc phục: mỗi khi di chuyển ảnh xuất hiện vệt dài phía sau, trông rất xấu ? Mong mọi người giúp tìm ra nguyên nhân . THanks !
Ảnh demo error
Source:
http://www.mediafire.com/?mjwwhqdzwgn
http://www.savefile.com/files/2109081
http://ultrashare.net/hosting/fl/d58187d400/game
http://www.megaupload.com/?d=62952U8U
http://www.turboupload.com/sw6i81lqwdkl/game.rar.html
http://uploading.com/files/SLVV4NW3/game.rar.html
http://www.zshare.net/download/602566621a09652f/
Code file cpp
Mã:#include<windows.h>#include"Object.h" char szAppName[50]="BIT MAP PROGRAM"; LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);HINSTANCE hInst;int i=0,next=1;static int x,y;int a=0,b=0; //int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,PSTR szCmdLine,int iCmdShow){ MSG msg; HWND hwnd; WNDCLASS wc; hInst=hInstance; wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); wc.hInstance = hInstance; wc.lpfnWndProc = WndProc; wc.lpszClassName = szAppName; wc.lpszMenuName = NULL; wc.style = CS_VREDRAW|CS_HREDRAW; if(!RegisterClass(&wc)) { MessageBox(NULL,"Loi dang ky cua so","Thong bao",MB_ICONERROR); return 0; } hwnd=CreateWindow( szAppName, "BITMAP PROGRAM", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL,); ShowWindow(hwnd,iCmdShow); SetTimer(hwnd,1,1,NULL); UpdateWindow(hwnd); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;} LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam){ HDC hdc1,hdc2; PAINTSTRUCT ps; RECT rect; switch(msg) { case WM_PAINT: hdc1=BeginPaint(hwnd,&ps); InvalidateRect(hwnd,&rect,1); EndPaint(hwnd,&ps); break; case WM_MOUSEMOVE://lay toa do mouse roi ve anh len toa do do x = LOWORD(lParam); y = HIWORD(lParam); hdc1=GetDC(hwnd); hdc2=CreateCompatibleDC(hdc1); tower(1,1 , x-40, y-30, hdc1, hdc2, hInst, hwnd);//Object.h InvalidateRect(hwnd,&rect,1); break;// case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd,msg,wParam,lParam);}
-
20-05-2009, 06:35 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lý do là bạn chưa xóa bitmap tại vị trí cũ. Khi xử lý WM_MOUSEMOVE, BitBlt với tham số dwDrop là SRCINVERT tại vị trí cũ để xóa hình, sau đó BitBlt tại vị trí mới để vẽ
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...