PDA

View Full Version : [TUTOR] Chương trình Winamp bằng VC+ Flash !!!



CrazyKing
03-11-2002, 11:14
Hi !!!!
Từ khi dùng Windows đến giờ , nếu bạn chú ý một tí , thì bạn sẽ chẳng bao giờ thấy một control nào chuẩn của Windows có hình tròn phải không nhỉ (Button chẳng hạn) !!! Và khi cài WinXP bạn quá bất ngờ bởi giao diện vô cùng bắt mắt của nó , các cửa sổ đều được bẻ cong ở góc ! Quá tuyệt , phải hông nhỉ , thui thì để Crazyking tâu lên bà con cô bác một cách để làm được điều này ! Đây cũng là kỹ thuật cổ điển mà thôi , còn có kỹ thuật mới mẻ nào không thì ......hì hì chưa biết !!!!
Một vài hàm mà ta cần biết để làm được điều này :
int SetWindowRgn
( HWND hWnd, //handle to window whose window region is to be set
HRGN hRgn, //handle to region
BOOL bRedraw, //window redraw flag
);
Vài hàm khởi gián thuộc tính của lớp Rgn :
1. CreateRoundRectRgn : Khởi tạo một đối tượng Rgn với một region hình chữ nhật với góc bo tròn .
2.CreateRectRgnIndirect :Khởi tạo một đối tượng Rgn với một region từ một cấu trúc RECT .
3.CreateEllipticRgn : Khởi tạo một đối tượng Rgn với một region hình ellipse
4.CreateEllipticRgnIndirect :Khởi tạo một đối tượng Rgn với một region hình ellipse từ cấu trúc RECT
5.CreatePolygonRgn :Khởi tạo một đối tượng Rgn với một region hình đa giác .Hệ thống đóng hình đa giác tự động nếu cần thiết , bằng cách vẽ một hàng từ đỉnh đầu đến đỉnh cuối .
Đoạn code ví dụ giả sử ta ta tạo ra Dialog và ta sẽ làm cho Dialog này có hình Ellipse :
// This Gets the size of the Dialog
RECT rc;
GetClientRect( hWnd, &rc);
// This Creates area assigned to Dialog
HRGN hRgn;
hRgn=CreateEllipticRgn( rc.left, rc.top, rc.right, rc.bottom);
SetWindowRgn(hWnd, (HRGN)hRgn, TRUE);
OK ! Bây giờ bạn đã tạo được một Dialog có hình Elippse rùi đó !!!
Custom control
//Tạo các push button owner draw
HWND hwndSmaller;
hwndSmaller = CreateWindow(
TEXT("button"), TEXT(""),
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
0, 0, BTN_WIDTH, BTN_HEIGHT,
hWnd, (HMENU)ID_SMALLER,
hInst, NULL);
//Di chuyển các button đến tâm mới !
MoveWindow(hwndSmaller,
cxClient/2-3*BTN_WIDTH/2,
cyClient/2-BTN_HEIGHT/2,
BTN_WIDTH, BTN_HEIGHT, TRUE);
Hì hì , đọc thêm trong MSDN các hàm trên bạn sẽ tìm thấy code ví dụ trong đó ,
Làm được những điều trên thì Mediaplayer của WinXP là chuyện nhỏ như con thỏ phải hôn nhỉ ??? Winamp thì còn nhỏ hơn con thỏ nữa ! Tui gởi các U một chương trình tui viết (Thể hiện ý tưởng trên + Flash 6 ) Đương nhiên muốn chạy được các U phải đăng ký cái thằng ocx của Flash 6 (Nếu không đăng ký được thì trong lệnh run dùng regsvr 32 + đường dẫn file Flash.ocx để đăng ký nhé !!), và máy phải có cài VC (Chứ nếu đóng gói toàn bộ luôn các Dll của Flash và VC thì dung lượng lớn quá , post lên hổng có được !!!) Một chương trình nghe nhạc MP3.WAV.MIDI. Hè hè cũng được đấy chứ nhỉ ...Chương trình này Cazyking cùng thằng bạn đang viết tiếp , muốn thành phần mềm chơi luôn thằng Winamp đó (Thấy chảnh hông ???) .
Gởi cho anh em bản V1.0 xem chơi !!!(Còn một vài lỗi nhỏ _ Nhưng nói chung là để demo cho bà con xem ý tưởng hay hay thôi ! Khi nào hoàn thành sẽ post bản V.2002 cho bà con xài luôn (Tại vì cần tìm hiểu thêm về Directx nữa !!!)
Để chạy được bạn phải giải nén sao cho các file thoả mãn C:\gg\gg.exe(+ thư mục res) (Còn nếu như hổng có thỏa mãn đường dẫn trên thì bạn chỉ thấy Dialog màu trắng hông hèn !!!) . Tại vì hôm trước viết vội quá , chưa khai báo lại đường dẫn tương đối mong các bạn thông cảm !!!!
Thui . dừng đây , ăn côm cái đã , chiều nay còn phải lên trường để dự câu lạc bộ tin học nữa rùi ! Chúc các U có một ngày chủ nhật ....thật là mệt mõi . hè hè !!!

ThuThuy
03-11-2002, 19:31
Hi ! Chào Crazy !!! Sao lại có mặt ở đây ? Sao bảo dạo này bận lắm mà ? Còn rảnh để viết bài post lên đây nữa ? Anh xạo quá trùi đi !!! Không thèm chơi với anh nữa !
Nói vậy thôi , chứ em thấy trên này cũng bổ ích lắm ! Em tham gia với hén !

MakeLove
14-11-2002, 09:15
Hi hi ! Crazyking làm cái chương trình nghe nhạc này hay lắm ! Hình nhỏ con gái ở trỏng là bạn thiết kế đó hả ? Mấy cái nút play , stop để ngộ quá , đụng toàn mấy chổ hiểm không !!! Nhưng nó chung là đẹp !!! Đáng khâm phục ! Cố gắng làm tiếp cho anh em xem với !!!
Và nhớ là khi làm xong post code lên cho mọi ngưòi coi với nghen !!
Thank !