Chúng chỉ là abstract data types.
Theo MSDN, HANDLE
và HWND
được định nghĩa là:
HANDLE
là một handle đến một đối tượng.
HWND
là tay cầm vào cửa sổ.
Vì vậy, một HWND
là một HANDLE
, nhưng không phải tất cả HANDLE
s là HWND
. Trong thực tế:
typedef void *PVOID;
typedef PVOID HANDLE;
typedef HANDLE HWND;
Ví dụ
Bạn chỉ nên vượt qua HWND
để SetForegroundWindow
trừ khi bạn biết những gì bạn đang làm.
HWND hWnd = FindWindow(NULL, "Calculator");
SetForegroundWindow(hWnd);
Điều này trước tiên sẽ xử lý cửa sổ có tiêu đề "Máy tính" với FindWindow
và sau đó mang cửa sổ đó sang nền trước.
yep, tks !, nhưng tôi có thể chuyển đổi từ xử lý thành hwnd không? – Thangnv
@Thangnv Điều này giống như hỏi "Tôi có thể chuyển đổi từ' void * 'thành' int * '?" Nó phụ thuộc. Tay cầm của bạn là gì? – timothyqiu
Xử lý của tôi là một chuỗi và tôi muốn chạy nó ở nền trước, nhưng nó không phải là một HWND trong hàm SetForegroundWindow (HWND hWnD). – Thangnv