gpt4 book ai didi

c++ - 替换 WNDCLASS 中的画笔颜色

转载 作者:行者123 更新时间:2023-11-30 02:21:11 25 4
gpt4 key购买 nike

我正在阅读 Petzold 的书并坚持执行以下一段代码,我根本无法理解它的作用。

作者说:

You can create the new brush and insert the handle in the window class structure and then delete the brush.

DeleteBrush((HBRUSH)
SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG_PTR)
CreateSolidBrush(RGB(color[0], color[1], color[2]))));

SetClassLongPtr() 设置一个新画笔,但我不明白 DeleteBrush() 是如何删除旧画笔的,如果参数是我们要的新画笔使用。

看起来新刷子取代了旧刷子?

最佳答案

SetClassLongPtr返回当前/旧画笔:

If the function succeeds, the return value is the previous value of the specified offset. If this was not previously set, the return value is zero.

为了更好的理解代码,可以重写为:

HBRUSH hNew = CreateSolidBrush(RGB(color[0], color[1], color[2]))));
HBRUSH hOld = (HBRUSH) SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG_PTR) hNew);
DeleteBrush(hOld);

关于c++ - 替换 WNDCLASS 中的画笔颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com