创建一个200x200内存Bitmap
底色为红色,
然后显示在窗体上.
能不能给个例子,或者说说我的程序问题在那里,我的程序现在的问题是什么都没有显示.
UCHAR * pb,pc;
int i;
HBITMAP hbmp;
pb =(UCHAR *) new UCHAR[604][200];
FillMemory(pb,604*200,0);
hbmp = CreateBitmap(201,200,1,24,pb); HDC dc = ::GetDC(this->m_hWnd);
::ReleaseDC(this->GetSafeHwnd(),dc);
HDC hdc = ::CreateCompatibleDC(dc);
::SelectObject(hdc,hbmp);
BitBlt(dc,0,0,201,200,hdc,0,0,SRCCOPY);
::ReleaseDC(this->GetSafeHwnd(),dc);
DeleteDC(hdc);
底色为红色,
然后显示在窗体上.
能不能给个例子,或者说说我的程序问题在那里,我的程序现在的问题是什么都没有显示.
UCHAR * pb,pc;
int i;
HBITMAP hbmp;
pb =(UCHAR *) new UCHAR[604][200];
FillMemory(pb,604*200,0);
hbmp = CreateBitmap(201,200,1,24,pb); HDC dc = ::GetDC(this->m_hWnd);
::ReleaseDC(this->GetSafeHwnd(),dc);
HDC hdc = ::CreateCompatibleDC(dc);
::SelectObject(hdc,hbmp);
BitBlt(dc,0,0,201,200,hdc,0,0,SRCCOPY);
::ReleaseDC(this->GetSafeHwnd(),dc);
DeleteDC(hdc);
解决方案 »
- CreateDIBSection 与 CreateDIBitmap 的区别——详细探讨
- 关于完成端口问题
- VC CFile的问题
- 请问这段代码的指针哪里有问题?
- 类似于游戏私服的难题!!!
- font对话框
- 简单问题:怎样修改exe文件上方的字???
- UDP 问题sendto() != recvfrom() ?&%$#!
- DCOM在98和2K上表现不一致
- Unicode环境下,用WriteCString以CFile::typeText写汉字,用UltraEdit打开,为什么什么都没写进去,除了换行
- 关于光标的问题(基类是CEditView)(如何让视图始终不会出现光标,)
- 枚举进程相关信息的问题
2创建内存DC,选进BITMAP
3画东西
4把内存DC BITBLT 到实际的DC上就OK了
int nWidth, nHeight;
nWidth = 200;
int nByteWidth = (nWidth * 3 / 4) * 4;
nHeight = 200;
HBITMAP hbmp;
pb =(UCHAR *) new UCHAR[nByteWidth * nHeight * sizeof(COLORREF)];
FillMemory(pb,nByteWidth * nHeight * sizeof(COLORREF), 0);
hbmp = CreateBitmap(nWidth, nHeight, 1, 32, pb); HDC dc = ::GetDC(this->m_hWnd);
// ::ReleaseDC(this->GetSafeHwnd(),dc);
HDC hdc = ::CreateCompatibleDC(dc);
HBITMAP hBmpOld = (HBITMAP)::SelectObject(hdc, hbmp);
BitBlt(dc, 0, 0, nWidth, nHeight, hdc, 0, 0, SRCCOPY);
::ReleaseDC(this->GetSafeHwnd(),dc);
::SelectObject(hBmpOld);
::DeleteObject(hbmp);
DeleteDC(hdc);
delete []pb;
int nWidth,
int nHeight,
UINT cPlanes,
UINT cBitsPerPel,
CONST VOID *lpvBits
);