有关调色板
CView含一成员变量黑白两色位图m_pBitmap,现已能显示,想根据用户选择可动态调整其
位图前景色,背景色为其他颜色,如何通过调整调色板实现,我的代码不起作用,显示与修改前相同,为什么?
ondraw中的代码:
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(m_pBitmap);
CRect rect;
//
LOGPALETTE * plp ;
CPalette hPalette;
plp=(LOGPALETTE *)malloc(sizeof(LOGPALETTE)+256*sizeof(PALETTEENTRY)) ;
plp->palVersion= 0x0300;
plp->palNumEntries=256;
int i;
for (i=0;i<256;i++){
plp->palPalEntry[i].peRed=(BYTE)(i);
plp->palPalEntry[i].peGreen=(BYTE)(i);
plp->palPalEntry[i].peBlue=(BYTE)(i);
plp->palPalEntry[i].peFlags=0;
}
hPalette.CreatePalette(plp);
free(plp);
CPalette * pold;
pold=pDC.SelectPalette(&hPalette, FALSE);
pDC.RealizePalette();//
//
GetClientRect(&rect);
pDC->BitBlt(0,0, pDoc->m_Bmp.m_Width,pDoc->m_Bmp.m_Height,
&dcMemory,0,0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
pDC.SelectPalette(pold,FALSE);
问题点数:50、回复次数:7Top
1 楼csdn3141()回复于 2003-12-01 08:56:35 得分 0
<上面代码发帖敲错了pDC.应为pDC->,>,问题同,只是想试试调色板是否起作用?
请教!Top
2 楼wangzi163(甲骨文)回复于 2003-12-01 10:00:19 得分 0
需要UpdateView吧。Top
3 楼csdn3141()回复于 2003-12-01 10:27:15 得分 0
以上代码是在OnDraw中,不须UpdateView,我的这种思路是否正确?,
具体应如何实现呢?
Top
4 楼csdn3141()回复于 2003-12-01 10:49:12 得分 0
则么没人回答?,急!!!!!!!!!!!1Top
5 楼csdn3141()回复于 2003-12-01 14:31:08 得分 0
则么没人回答?,急顶
!!!!!!!!!!!1
Top
6 楼abeng_2001(风间苍月)回复于 2003-12-02 18:59:26 得分 50
你是在24位模式下调试的吗?
24位模式根本不用系统调色板Top
7 楼csdn3141()回复于 2003-12-03 10:22:28 得分 0
我想要做的是:要显示的:二值图像(大于屏幕),想要根据用户设置图像前景色,背景色,我的想法是:生成16色内存位图CBitmap,在选入MemDc,根据用户设置改变调色板,OnDraw中拷贝到pDC,
如何利用二值图像阵列生成16色CBitmap?
Top




