gpt4 book ai didi

winapi - SelectObject(dc, hBMP) 的作用是什么?

转载 作者:行者123 更新时间:2023-12-02 09:07:28 24 4
gpt4 key购买 nike

我想我确实明白如果我在“设备连接”中选择“一个对象”,并且该对象是画笔字体,会发生什么>pen:这些对象的特征因此用于在设备上下文上绘图。

但是,我不明白在设备上下文中选择位图后会发生什么,更不用说为什么需要这样做了。

我有一个程序,有人做

HDC dc = ::GetDC(hWnd);

ffBitmap = ::CreateCompatibleBitmap(dc, windowWidth, windowHeight);
ffMemoryDc = ::CreateCompatibleDC(dc);

hOldBitmap = (HBITMAP) ::SelectObject(ffMemoryDc, ffBitmap);

然后绘制到ffMemoryDc,然后*BitBlt*s将ffMemoyDc放入窗口的真实设备上下文。

BitBlt ( dc, 
0, 0, windowWidth, windowHeight,
ffMemoryDc,
0, 0,
SRCCOPY
);

变量ffBitmap在整个程序中没有被引用,但是,如果我不选择SelectObject(ffBitmap),则不会绘制任何内容,因此这是必要的。

如果有人能阐明这里发生的事情,我将不胜感激。

最佳答案

这就是它的工作原理。您在 DC 中选择的位图是“绘制”的位图。引用MSDN :

Before an application can use a memory device context for drawing operations, it must select a bitmap of the correct width and height into the device context.

关于winapi - SelectObject(dc, hBMP) 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709006/

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