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

Đề tài: Phân Biệt Handle và HWND trong lập trình Windows

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    328

    Wink Phân Biệt Handle và HWND trong lập trình Windows

    2 cái này nếu mình dùng hàm Findwindows và hàm OpenProcess để xem kết quả của cùng 1 Process thì cho 2 kết quả khác nhau,mặc dù chúng đều là cán của Process,cho mình hỏi là 2 kiểu dữ liệu này khác nhau về cái gì vậy
    Tham gia diễn đàn MACOS http://www.apple9.com/forum

  2. #2
    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 trần trân Xem bài viết
    2 cái này nếu mình dùng hàm Findwindows và hàm OpenProcess để xem kết quả của cùng 1 Process thì cho 2 kết quả khác nhau,mặc dù chúng đều là cán của Process,cho mình hỏi là 2 kiểu dữ liệu này khác nhau về cái gì vậy
    Ko phải vậy đâu bạn, hàm FindWindow trả về Handle của một cửa sổ nào đó do process tạo ra, hàm OpenProcess trả về Handle của Process. Một Process có thể có nhiều cửa sổ nhưng cũng có process ko có cửa sổ nào. Process và windows là cái khác nhau hoàn toàn, bạn đâu thể so sánh đượ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.

  3. #3
    No Avatar
    ngocbig Khách

    Có thể tạm hiểu là Handle là khái niệm chung, rộng hơn so với HWND. Vì HWND là Handle của Window, HBITMAP là Handle của Bitmap, HBRUSH là Handle của brush, ....HPEN, HDC.

  4. #4
    Ngày gia nhập
    09 2008
    Bài viết
    328

    Có thể tạm hiểu là Handle là khái niệm chung, rộng hơn so với HWND. Vì HWND là Handle của Window, HBITMAP là Handle của Bitmap, HBRUSH là Handle của brush, ....HPEN, HDC.
    huhu,theo bạn mào con lôg vàng nói thì handle là handle của windows và HWND là handle của process,hình như ngọc big nói ngược
    Tham gia diễn đàn MACOS http://www.apple9.com/forum

  5. #5
    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 trần trân Xem bài viết
    huhu,theo bạn mào con lôg vàng nói thì handle là handle của windows và HWND là handle của process,hình như ngọc big nói ngược
    Ko phải vậy đâu bạn, hàm FindWindow trả về Handle của một cửa sổ nào đó do process tạo ra ....
    - Bạn hiểu nhầm ý mình rùi, Handle của Window mà mình nói là HWND, còn hàm OpenProcess trả trả về kiểu HANDLE. Từ Handle chỉ là danh từ chung thôi.

    - Nói cho rõ ràng là thế này :
    + Hàm FindWindow sẽ trả về HWND là handle của Window
    + Hàm OpenProcess sẽ trả về HANDLE là handle của Process
    + Một Process có thể có nhiều hoặc ko có Window nào.
    + Cả HANDLE và HWND đều là kiểu con trỏ 32 bit và được gọi bằng danh từ chung là handle.
    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.

  6. #6
    No Avatar
    ngocbig Khách

    Mặc định Phân Biệt Handle và HWND trong lập trình Windows

    huhu,theo bạn mào con lôg vàng nói thì handle là handle của windows và HWND là handle của process,hình như ngọc big nói ngược
    Hehe, bạn kô hiếu ý mèo rồi và... chắc cũng chưa hiểu ý mình.

    typedef HANDLE HWND

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

    Mình xin bổ sung thêm cho đỡ rối :
    HWND và HANDLE về mặt cấu trúc dữ liệu là giống hệt nhau : chúng đều là con trỏ 32 bit. Về ý nghĩa thì chúng khác nhau : HWND trỏ đến một cấu trúc lưu thông tin về window của một process, HANDLE trỏ đến cấu trúc lưu thông tin về process.
    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.

  8. #8
    No Avatar
    ngocbig Khách

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Mình xin bổ sung thêm cho đỡ rối :
    HWND và HANDLE về mặt cấu trúc dữ liệu là giống hệt nhau : chúng đều là con trỏ 32 bit. Về ý nghĩa thì chúng khác nhau : HWND trỏ đến một cấu trúc lưu thông tin về window của một process, HANDLE trỏ đến cấu trúc lưu thông tin về process.
    Bạn nói vậy bạn ấy lại hiểu nhầm là HANDLE chỉ dùng cho process đấy.

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

    Ờ ờ mình quên . Xin bổ sung hiệp 2 : HANDLE hiểu rộng ra là một kiểu con trỏ trỏ đến một kiểu Object trong Windows. Object này có thể là Process, Thread, File, .... nói chung là còn nhiều thứ khác nữa.

    PS : còn thiếu gì ko hả ngocbig ?
    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.

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

  1. Lấy Handle (HWND) của Console Window [Hướng dẫn + Souce code]
    Gửi bởi Kevin Hoang trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 3
    Bài viết cuối: 03-08-2016, 05:01 PM
  2. Lấy handle Control trong Windows bằng sử dụng C#?
    Gửi bởi tomahutbui trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 30-03-2011, 11:13 PM
  3. Lấy handle Control trong Windows bằng sử dụng C#?
    Gửi bởi tomahutbui trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 27-03-2011, 07:23 PM
  4. Lập trình VC++ | Lấy Hwnd của Windows
    Gửi bởi chanvaidan trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 06-12-2009, 09:21 PM
  5. Hỏi : cho em hỏi hWnd, HINSTANCE, và handle khác nhau thế nào??
    Gửi bởi quangnh89 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 01-08-2009, 06:19 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