这是我在一个picture control上自绘图,本来想填充粉红色的效果,总是显示不了,其他什么颜色都不行,都是一致显示白色,各位高手帮忙一下
int cx,cy;
CPaintDC dc(this);
CRect rc;
GetDlgItem(IDC_STATIC_P1)->GetClientRect(rc);
CWnd *pWnd = GetDlgItem(IDC_STATIC_P1);
CDC *pDC = pWnd->GetDC();
CBrush brush(RGB(255, 51, 153));
CBrush *pOldBrush = pDC->SelectObject(&brush);
//pDC->FillRect(rc,pOldBrush);
pWnd-> Invalidate();
pWnd-> UpdateWindow();
cx=rc.Width()/52;
cy=rc.Height()/16;
for(int i=0;i<17;i++)
{
for(int j=0;j<55;j++)
{
//pDC->SelectStockObject(BLACK_BRUSH);
pDC->FillRect(CRect(CPoint(cx*j,cy*i),CSize(9,9)),pOldBrush);
}
}
pDC->SelectObject(pOldBrush);
int cx,cy;
CPaintDC dc(this);
CRect rc;
GetDlgItem(IDC_STATIC_P1)->GetClientRect(rc);
CWnd *pWnd = GetDlgItem(IDC_STATIC_P1);
CDC *pDC = pWnd->GetDC();
CBrush brush(RGB(255, 51, 153));
CBrush *pOldBrush = pDC->SelectObject(&brush);
//pDC->FillRect(rc,pOldBrush);
pWnd-> Invalidate();
pWnd-> UpdateWindow();
cx=rc.Width()/52;
cy=rc.Height()/16;
for(int i=0;i<17;i++)
{
for(int j=0;j<55;j++)
{
//pDC->SelectStockObject(BLACK_BRUSH);
pDC->FillRect(CRect(CPoint(cx*j,cy*i),CSize(9,9)),pOldBrush);
}
}
pDC->SelectObject(pOldBrush);
解决方案 »
- 求两本书MFC书的IBSN号
- 我用事件OnLvnItemchangedLrenraku鼠标点下后会走进去3遍,为什么阿(没有分了还是指点下吧)
- 有没有办法让我的button显示为不可见,但当我点到那个位置的时候功能又可以有效?
- 自启动程序的问题,帮顶有分,在线
- 完全使用 GDI 绘制的 Office XP 启动画面风格信息框
- 怎样可以把某exe文件里面的某个操作过程抓出来?
- 关于树形控件的选中问题!!!!急!!!
- 疯了
- 怎样实现两个工程之间的参数传递?
- ★如何读写文件?★
- 如果辞职,上级问原因,你会怎么答?
- cannot convert parameter 1 from 'struct HPointe [60]' to 'const struct tagPOINT
pDC->FillRect(CRect(CPoint(cx*j,cy*i),CSize(9,9)),pOldBrush);
改为
pDC->FillRect(CRect(CPoint(cx*j,cy*i),CSize(9,9)),&brush);
====================
你用的是旧画刷画图当然不行了。
struct
{
beginPos;
endPos;
color;
其它信息
}在OnPaint中按数组画图就行。
修改颜色,只改动元素的color值,再InvalidateRect或Invalidate都可还建议使用双缓冲,才不闪
你这句代码出问题了,画刷是不能这样创建的啊!
这样写就没问题了:
CBrush brush(pDC->CreateSolidBrush(RGB(255, 51, 153)));