我正在制作一个带有表示对象的位图的小游戏,并且我正在尝试使用位图蒙版来掩盖背景。我在google上查了一下,做了两张位图。一艘船和一个作为面具。对于面具,我把我想要的所有东西都涂上了黑色和背景白色。(如果这应该相反,请告诉我)。我这样加载位图:
HBITMAP bmpShip = (HBITMAP)LoadImage(NULL,
"C:\\Users\\Owner\\Desktop\\Asteroids\\Starship.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
HBITMAP hShipMask = (HBITMAP)LoadImage(NULL,
"C:\\Users\\Owner\\Desktop\\Asteroids\\StarshipMask.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
现在如何使用 BitBlt 光栅操作在特定位置的屏幕上显示没有背景的位图。在不掩盖背景的情况下,这就是我一直在做的事情:
Ship = CreateWindowEx(0,
"STATIC","",
SS_CENTERIMAGE | SS_REALSIZEIMAGE | SS_BITMAP | WS_CHILD | WS_VISIBLE,
10,
shipPos,
294,
86,
Background,
(HMENU)-1,
NULL, NULL);
SendMessage(Ship, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)bmpShip);
UpdateWindow(hWnd);
//And moving the window with MoveWindow()
谁能告诉我如何掩盖背景然后将窗口移动到新位置
编辑:顺便说一句,背景只是另一个位图,其加载方式与显示船舶顶部的其他位图相同。