首先:我对GDI有点新鲜感,所以如果我有任何误解,请原谅(并请告诉我)。如何绘制位图
我想要做的事: 我试图让我的WM_PAINT代码漆为位图,而不是与调用BeginPaint屏幕()。我也想在屏幕上显示位图,同时在其上显示其他数据(不保存到位图)。
任何人都可以告诉我需要实现这个功能和数据类型的win32吗? 谢谢
首先:我对GDI有点新鲜感,所以如果我有任何误解,请原谅(并请告诉我)。如何绘制位图
我想要做的事: 我试图让我的WM_PAINT代码漆为位图,而不是与调用BeginPaint屏幕()。我也想在屏幕上显示位图,同时在其上显示其他数据(不保存到位图)。
任何人都可以告诉我需要实现这个功能和数据类型的win32吗? 谢谢
首先,要画一个窗口以外的地方,你需要一个新的DC。您可以使用HDC memDC = CreateCompatibleDC([your window hdc]);
创建一个。
现在你需要一个位图来绘制。使用HBITMAP memBitmap = CreateCompatibleBitmap ([your window hdc],[your window width],[your window height]);
(假设你想要一个相同的大小,如果它不是那么StretchBlt
应该做的伎俩)来创建。
请注意,当您完成这些操作后,您需要清理DeleteObject (memBitmap);
和DeleteDC (memDC);
。
一旦创建,选择位图到你的屏幕外DC通过SelectObject (memDC, memBitmap);
现在做你的绘图到memDC
。完成后,使用函数将源代码hdc用作memDC,将目标hdc用作窗口的DC。不要忘记删除您创建的内容。
由于我们必须使用CreateCompatibleBitmap()创建与设备上下文兼容的位图...在该程序中,我还希望允许用户从文件加载位图。我将如何使该位图兼容呢? – xcrypt
http://msdn.microsoft.com/en-us/library/ms908165.aspx –