TC官方合作论坛

标题: dllcall 关闭字体平滑不成功 [打印本页]

作者: WannaPlay    时间: 2015-4-26 22:51
标题: dllcall 关闭字体平滑不成功
本帖最后由 WannaPlay 于 2015-4-26 23:12 编辑

反复测试了下,以下autoit3代码可以工作(关闭字体平滑),但在TC下调用无效。(MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx)
$SPI_SETFONTSMOOTHING = 0x004B
$SPIF_UPDATEINIFILE = 0x1
$SPIF_SENDCHANGE = 0x0002

DllCall("user32.dll", "bool", "SystemParametersInfo", _
        "dword", $SPI_SETFONTSMOOTHING, _
        "dword",0 , _ ; 1 for enable or 0 for disable
        "dword",0, _
        "dword",BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDCHANGE) )


TC5下用以下代码调用没反应
dllcall("user32.dll","bool","SystemParametersInfo","uint",#004B,"uint",0,"uint",0,"uint",#0003)

或者

dllcall("user32.dll","bool","SystemParametersInfo","dword",#004B,"dword",0,"dword",0,"dword",#0003)

解决: 用TC5附带Win32参考里的 SystemParametersInfoW 调用就正常
dllcall("user32.dll","long","SystemParametersInfoW","long",#004B,"long",0,"long",0,"long",#0003)


作者: venski    时间: 2015-10-28 21:24
本帖最后由 venski 于 2015-10-28 21:26 编辑

是的,在TC中,很多整型,直接用long来代替就是。
有些语言,有些API区分A和W,有些编程工具编译时会根据系统环境自动选 A或者W
你这个很不错,收藏!





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1