我是C++新手。这是我从一本WIN32 API书上改编的代码,只有在x86模式下debug开启时才能正常工作。我试着把GWL_HINSTANCE改成GWLP_HINSTANCE,没有结果。
hBmpBkgr = LoadBitmapW((HINSTANCE)GetWindowLongW(hWnd, GWLP_HINSTANCE), MAKEINTRESOURCEW(IDB_STONE));
hBkBrush = CreatePatternBrush(hBmpBkgr);
SetClassLongW(hWnd, GCLP_HBRBACKGROUND, (LONG)hBkBrush);
hBmpBall = LoadBitmapW((HINSTANCE)GetWindowLongW(hWnd, GWLP_HINSTANCE), MAKEINTRESOURCEW(IDB_BALL));
GetObjectW(hBmpBall, sizeof(bm), (LPSTR)&bm);
hMemDcFrame = CreateCompatibleDC(hdc);
hBmpFrame = CreateCompatibleBitmap(hdc, rect.right, rect.bottom);
SelectObject(hMemDcFrame, hBmpFrame);
SetGraphicsMode(hMemDcFrame, GM_ADVANCED);
将指定的32位(长)值以指定的偏移量替换到指定窗口所属类的额外类内存或WNDCLASSEX结构中。
注意:这个函数已经被SetClassLongPtr函数所取代。要编写与32位和64位版本的Windows兼容的代码,请使用 SetClassLongPtr.
此外,[。LoadBitmap
可用于 "需求 "部分指定的操作系统。在后续版本中,它可能会被更改或不可用。相反,请使用 加载图片 和 DrawFrameControl.]
更多细节请参考。LoadBitmap