一个简单的问题——关于delphi与API delphi中HWND类型与HDC类型有什么区别?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该没区别,就是个 type Hdc=Longword; 别名而已 照我的理解应该是HWND包含HDC,HDC是指画板的handle,HWND是窗口的handle 接楼上,而句柄都是LongWord,本质是一样的。 HWND 窗口句柄HDC 设备句柄 HWND:一般用来指窗口句柄,比如Form,edit...HDC:一般用来指设备句柄,比如显示器... HWND 窗口句柄HDC 设备句柄 同意:chinaandys(风流含笑&&鞭策自已,给别人一个爱的微笑) 都是句柄,只是为了便于区别用途罢了。 同意:chinaandys(风流含笑&&鞭策自已,给别人一个爱的微笑) 都是句柄,只是为了便于区别用途罢了。 严重不同意:chinaandys(风流含笑&&鞭策自已,给别人一个爱的微笑) 都是句柄,只是为了便于区别用途罢了。我认为可以在Delphi里理解为一个LongWord or Cardinal,在C++语言里是一个指针,至于什么指针,差别可大了,很可能是对象的导出指针比如:(本应用C++写,这里用Delphi吧)TwHandle = class constructor Create; destructor Destroy; BOOL CloseHandle; // for CloseHande;end;TwHDC = class(TwHandle) functoin CreateDC(...): TwHDC; // for CreateDC end;TwHWND = class(TwHandle) function CreateWindowEx(...): TwHWND; functoin SetWindowLong(...): LongInt;end;//上面的方法省略了实现,应为不知道Windows的代码。//下面为各对象的导出接口,就和我们看到的API一样BOOL CloseHandle(h: THandle); //不是对象方法begin TwHandle(h).CloseHandle; FreeAndNil(TwHandle(h)); Result:= TwHandle(h) = nil;end;functoin CreateDC(...): TwHDC;var h: TwHDC; begin h:= TwHDC.Create; h.CreateDC(...); if success then Result:= HDC(h) else Result:= 0;end;function CreateWindowEx(...): TwHWND; var h: TwHWND;begin h:= TwHWND.Create; h.CreateWindowEx(...); if success then Result:= HWND(Self) else Result:= 0;end;functoin SetWindowLong(hWnd: HWND; ...): LongInt; //比对象法法中多一个HWND型的参数 ;begin Result:= TwHWND(hWnd).SetWindowLong(...);end;以上代码就是将对象形式转化为普通函数调用形式的方法,不过Windows近年来都不用了,而用更高级的方式借口,比如DirectX Shell ... 严重不同意:chinaandys(风流含笑&&鞭策自已,给别人一个爱的微笑) 都是句柄,只是为了便于区别用途罢了。我认为可以在Delphi里理解为一个LongWord or Cardinal,在C++语言里是一个指针,至于什么指针,差别可大了,很可能是对象的导出指针比如:(本应用C++写,这里用Delphi吧)TwHandle = class constructor Create; destructor Destroy; BOOL CloseHandle; // for CloseHande;end;TwHDC = class(TwHandle) functoin CreateDC(...): TwHDC; // for CreateDC end;TwHWND = class(TwHandle) function CreateWindowEx(...): TwHWND; functoin SetWindowLong(...): LongInt;end;//上面的方法省略了实现,应为不知道Windows的代码。//下面为各对象的导出接口,就和我们看到的API一样BOOL CloseHandle(h: THandle); //不是对象方法begin TwHandle(h).CloseHandle; FreeAndNil(TwHandle(h)); Result:= TwHandle(h) = nil;end;functoin CreateDC(...): TwHDC;var h: TwHDC; begin h:= TwHDC.Create; h.CreateDC(...); if success then Result:= HDC(h) else Result:= 0;end;function CreateWindowEx(...): TwHWND; var h: TwHWND;begin h:= TwHWND.Create; h.CreateWindowEx(...); if success then Result:= HWND(h) else Result:= 0;end;functoin SetWindowLong(hWnd: HWND; ...): LongInt; //比对象法法中多一个HWND型的参数 ;begin Result:= TwHWND(hWnd).SetWindowLong(...);end;以上代码就是将对象形式转化为普通函数调用形式的方法,不过Windows近年来都不用了,而用更高级的方式——接口,比如DirectX Shell ... 我一直沒有用過delphi調用過api函數﹐有誰可以介紹几本好書 类型上都是Cardinal而已,没区别http://lysoft.7u7.net delphi idhttp发送http头 急。。报表打印问题。横打变竖打 迎新年,放分B4风三火 求助一条SQL语句 急急急!!! DBGrid问题,编号,修改 怎么样让dbgrid中的某条数据根据条件不停闪烁啊 继续提问! ☆★☆★☆★☆★☆★☆★N喜临门,大放分☆★☆★☆★☆★☆★☆★☆ 如何显示,很简单,可是我不会 这可否实现,自动记录访问者的E-Mail地址? 招聘师傅:QQ教dbgrid使用。 午间1小时,150分。 请有线程编程经验的cc们进来看看
别名而已
本质是一样的。
HDC 设备句柄
HDC:一般用来指设备句柄,比如显示器...
HDC 设备句柄
都是句柄,只是为了便于区别用途罢了。
都是句柄,只是为了便于区别用途罢了。
都是句柄,只是为了便于区别用途罢了。我认为可以在Delphi里理解为一个LongWord or Cardinal,
在C++语言里是一个指针,至于什么指针,差别可大了,很可能是对象的导出指针比如:(本应用C++写,这里用Delphi吧)TwHandle = class
constructor Create;
destructor Destroy;
BOOL CloseHandle; // for CloseHande;
end;TwHDC = class(TwHandle)
functoin CreateDC(...): TwHDC; // for CreateDC
end;TwHWND = class(TwHandle)
function CreateWindowEx(...): TwHWND;
functoin SetWindowLong(...): LongInt;
end;//上面的方法省略了实现,应为不知道Windows的代码。
//下面为各对象的导出接口,就和我们看到的API一样BOOL CloseHandle(h: THandle); //不是对象方法
begin
TwHandle(h).CloseHandle;
FreeAndNil(TwHandle(h));
Result:= TwHandle(h) = nil;
end;functoin CreateDC(...): TwHDC;
var
h: TwHDC;
begin
h:= TwHDC.Create;
h.CreateDC(...);
if success then Result:= HDC(h)
else Result:= 0;
end;
function CreateWindowEx(...): TwHWND;
var
h: TwHWND;
begin
h:= TwHWND.Create;
h.CreateWindowEx(...);
if success then Result:= HWND(Self)
else Result:= 0;
end;functoin SetWindowLong(hWnd: HWND; ...): LongInt; //比对象法法中多一个HWND型的参数 ;
begin
Result:= TwHWND(hWnd).SetWindowLong(...);
end;以上代码就是将对象形式转化为普通函数调用形式的方法,
不过Windows近年来都不用了,而用更高级的方式借口,比如DirectX Shell ...
都是句柄,只是为了便于区别用途罢了。我认为可以在Delphi里理解为一个LongWord or Cardinal,
在C++语言里是一个指针,至于什么指针,差别可大了,很可能是对象的导出指针比如:(本应用C++写,这里用Delphi吧)TwHandle = class
constructor Create;
destructor Destroy;
BOOL CloseHandle; // for CloseHande;
end;TwHDC = class(TwHandle)
functoin CreateDC(...): TwHDC; // for CreateDC
end;TwHWND = class(TwHandle)
function CreateWindowEx(...): TwHWND;
functoin SetWindowLong(...): LongInt;
end;//上面的方法省略了实现,应为不知道Windows的代码。
//下面为各对象的导出接口,就和我们看到的API一样BOOL CloseHandle(h: THandle); //不是对象方法
begin
TwHandle(h).CloseHandle;
FreeAndNil(TwHandle(h));
Result:= TwHandle(h) = nil;
end;functoin CreateDC(...): TwHDC;
var
h: TwHDC;
begin
h:= TwHDC.Create;
h.CreateDC(...);
if success then Result:= HDC(h)
else Result:= 0;
end;
function CreateWindowEx(...): TwHWND;
var
h: TwHWND;
begin
h:= TwHWND.Create;
h.CreateWindowEx(...);
if success then Result:= HWND(h)
else Result:= 0;
end;functoin SetWindowLong(hWnd: HWND; ...): LongInt; //比对象法法中多一个HWND型的参数 ;
begin
Result:= TwHWND(hWnd).SetWindowLong(...);
end;以上代码就是将对象形式转化为普通函数调用形式的方法,
不过Windows近年来都不用了,而用更高级的方式——接口,比如DirectX Shell ...