Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Hỏi cách tạo chuơng trình zoom màn hình (live + tuơng tác)

  1. #1
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Mặc định Hỏi cách tạo chuơng trình zoom màn hình (live + tuơng tác)

    Chào các bạn,
    Mình muốn tạo một chuơng trình zoom màn hình giống như ZoomIt nhưng có thêm 2 yêu cầu sau:

    1. Hình ảnh live, chứ ko phải là ảnh chụp tĩnh.
    2. Trong khi zoom mình vẫn có thể tuơng tác được với các control.

    Về phần hình ảnh live thì mình thấy chuơng trình Magnifier trên Windows Vista làm được rồi. Còn tuơng tác thì chưa thấy chuơng trình nào làm được cả.

    Thanks.
    pEnGwINUS.

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Việc zoom tớ nghĩ là việc hiển thị các ảnh bitmap đã được resize , còn việc tương tác với các control thì là điều không thể , theo tớ thì đó phải là việc vẽ lại các control với kích thước lớn , có thể dùng các API thay đổi size của control ... không chắc ... etc

  3. #3
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Tớ vừa biết một chương trình đã làm được điều kì diệu này:

    Magic Lens Max: http://www.visionsuit.com/MagicLensMaxSetup.exe

    Không hiểu họ làm như thế nào nhỉ?
    pEnGwINUS.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình có ý tưởng thế này về việc tương tác với control : tìm tọa độ chuột trên ảnh để tính ra tọa độ chuột trên control. Sau đó SendMessage đến các control để giả lập sự kiện chuột.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Mình có ý tưởng thế này về việc tương tác với control : tìm tọa độ chuột trên ảnh để tính ra tọa độ chuột trên control. Sau đó SendMessage đến các control để giả lập sự kiện chuột.
    Nhất trí!
    Thế còn vấn đề zoom ảnh mà vẫn live thì sao hả bạn?
    pEnGwINUS.

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định Hỏi cách tạo chuơng trình zoom màn hình (live + tuơng tác)

    Mình nghĩ chắc là phải gài timer chụp hình, zoom lên và vẽ lại liên tục.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  7. #7
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Zoom nói chung nó sẽ được vẽ lại với một tỷ lệ khác mà thôi, còn việc ảnh live thì phải capture rồi. Nói chung sẽ sẽ trải qua các công việc: Capturing > Re-draw on Temporary Device Context with an other ratio > Copy to Actual Device Context >> SendMessage

    Dr trước cũng có làm một dự án và có liên quan vẽ vời một ít bằng GDI, nói chung về cơ bản, Dr nghĩ là phải làm như vậy. Hình như có ví dụ sẵn ở codeproject đó.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  8. #8
    Ngày gia nhập
    01 2007
    Nơi ở
    Hải Phòng
    Bài viết
    210

    Vấn đề là chương trình zoom của mình fullscreen. Vì vậy mà nó đè lên các chương trình khác. Mà đè lên rồi thì sao mà capture bên dưới được.

    Có cách là Hide chương trình của mình đi, sau đó capture, rồi lại hiện chương trình của mình lên. Nhưng tốc độ Hide Window là rất chậm nên ko khả thi.
    pEnGwINUS.

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Trích dẫn Nguyên bản được gửi bởi hieubm Xem bài viết
    Vấn đề là chương trình zoom của mình fullscreen. Vì vậy mà nó đè lên các chương trình khác. Mà đè lên rồi thì sao mà capture bên dưới được.

    Có cách là Hide chương trình của mình đi, sau đó capture, rồi lại hiện chương trình của mình lên. Nhưng tốc độ Hide Window là rất chậm nên ko khả thi.
    Không cần phải làm vậy đâu bạn. Bạn hãy hook hàm BeginPaint và sửa lại hdc trong cấu trúc PAINTSTRUCT thành hdc trong bộ nhớ. Bằng cách này mọi ứng dụng không thể vẽ ra màn hình mà phải vẽ vào trong bộ nhớ. Ứng dụng zoom sẽ đọc hdc trong bộ nhớ sau đó zoom lên và vẽ lại ra màn hình.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  10. #10
    Ngày gia nhập
    04 2008
    Bài viết
    336

    em có test qua phần mềm này thì thấy nó vẽ lại màn hình nhanh hơn so với Magnifier nhưng cũng vẫn là vẽ lại thôi, ko "live" đc.
    code ra gió bão

Các đề tài tương tự

  1. Graphic làm sao để zoom in zoom out cho picturebox
    Gửi bởi Riku trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 08-12-2013, 09:37 PM
  2. Dịch vụ live tip
    Gửi bởi bongda123 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 14-03-2012, 09:44 AM
  3. Graphic Lập trình giao diện như Window Live 2011?
    Gửi bởi spyhunter88 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 07-01-2011, 04:20 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn