|
我的原意是先把一副位图作为背景放在主窗口上,然后在主窗口上面再放一个子窗口作为播放的区域来进行视频文件的播放,我在static LRESULT CALLBACK Proc(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)里面添加了一个消息处理case WM_PAINT:
hdc=BeginPaint(p-> Win.Wnd,&Paint);
p-> Module = ((CREATESTRUCT*)lParam)-> hInstance;
GetClientRect(p-> Wnd,&rect); hdc=GetDC(p-> Wnd);
hdcmem=CreateCompatibleDC(hdc);
hbitmap=LoadBitmap(p-> Module ,MAKEINTRESOURCE(IDB_BACKGROUND));
hbitmapOld=(HBITMAP)SelectObject(hdcmem,hbitmap);
GetObject(MAKEINTRESOURCE(IDB_BACKGROUND),sizeof(HBITMAP),hbitmap);
BitBlt (hdc,0,0,rect.right,rect.bottom,hdcmem,0,0,SRCCOPY);
DeleteObject(hbitmap);
DeleteDC(hdcmem);
ReleaseDC(p-> Wnd,hdc);
DeleteDC(hdc);
EndPaint(p-> Wnd,&Paint);
break;
然后在static bool_t Proc(intface* p, int Msg, uint32_t wParam, uint32_t lParam, int* Result)里面去画case WM_PAINT:
BeginPaint(p->Win.Wnd,&Paint);
if (p->Skin[p->SkinNo].Valid)
SkinDraw(&p->Skin[p->SkinNo],Paint.hdc,&p->SkinArea);
p->Player->Paint(p->Player,Paint.hdc,p->Offset.x,p->Offset.y);
EndPaint(p->Win.Wnd,&Paint);
break;导致播放的窗口被盖住,看不到此窗口,我想应该是sealightyin 说的那样应该设置窗口显示的优先级别,我试一下! |
|