我想玩LoadIconWithScaleDown API。 我使用的是Delphi 2007,我编写了一个简单的示例程序,在点击一个按钮后,我调用COMMCTRL.LoadIconWithScaleDown。我尝试了各种组合,实例为零,实例设置为hInstance,对于第二个参数,我尝试传递当前模块名称MAKEINTRESOURCE(IDI_APPLICATION),...总是没有运气,我总是得到一个返回值-2147467263 。任何想法我做错了什么?LoadIconWithScaleDown总是失败
根据David的建议编辑,以显示我如何尝试调用API。
procedure TForm31.Button1Click(Sender: TObject);
var moduleName : string;
var moduleNameW : widestring;
var retVal : HRESULT;
var iconHandle : HICON;
begin
iconHandle := 0;
SetLength(moduleName, 1024);
WINDOWS.GetModuleFileName(
hInstance,
PCHAR(moduleName),
LENGTH(moduleName));
moduleNameW := moduleName;
retVal := COMMCTRL.LoadIconWithScaleDown(
HINSTANCE,
PWidechar(moduleNameW),
image1.width,
image1.height,
iconHandle);
end;
你在做什么错误是问关于你的代码的问题,而不包括[mcve] –
我了解你的评论David,但我尝试了各种组合,但都没有成功。如果你只有一个工作,我会很感激。我会编辑我的信息,举例说明我尝试过的。 –
你根本不检查错误。下一步阅读文档。听起来很明显,但你还没有做到。仔细阅读。两次。您传递的资源名称错误是我的猜测。错误会告诉你。再次阅读文档。这就是他们的目的。 –