我的测试代码如下,但是始终画笔是系统默认的画笔,黑色的单线,得不到我在HPEN里面设置的颜色值不知道哪里错了,请指正
CPen m_Pen;
m_Pen.CreatePen(PS_COSMETIC,5,RGB(130, 120, 120));
hGloPen = (HPEN)m_Pen;
CPen* pPen ;
CPen* ppPen = pPen->FromHandle(hGloPen);
CPen* oldPen;
oldPen = m_pCurDC->SelectObject(ppPen);
m_pCurDC->MoveTo(m_ptOld);
m_pCurDC->LineTo(point);
m_ptOld = point;
if(hGloPen != NULL)
{
m_pCurDC->SelectObject(oldPen);
}
CPen m_Pen;
m_Pen.CreatePen(PS_COSMETIC,5,RGB(130, 120, 120));
hGloPen = (HPEN)m_Pen;
CPen* pPen ;
CPen* ppPen = pPen->FromHandle(hGloPen);
CPen* oldPen;
oldPen = m_pCurDC->SelectObject(ppPen);
m_pCurDC->MoveTo(m_ptOld);
m_pCurDC->LineTo(point);
m_ptOld = point;
if(hGloPen != NULL)
{
m_pCurDC->SelectObject(oldPen);
}
解决方案 »
- 可以让VS2005在debug模式下让修改的代码立即生效吗?
- 关于BCG界面库的问题
- 这是什么错误:1 unresolved externals
- bitblt 简单问题 求教 高分 急!!!!
- 急 VC 怎么没有 ActiveXFrom 的东东啊
- 编译时出了一大堆,什么意思呀?..........
- 如何动态分割窗口?
- 怎么在程序里制作启动盘,有谁用过这个函数SHFormatDrive?
- 问个挨打的问题:用VC开发的同胞们用主要用它来开发什么样的程序?网络?数据库?还是别的。我觉得它不如Delphi方便呀。
- 关于类的导出问题
- 为什么我定义的全局变量在一个类中赋值后在另外的类中还是为空?正确即结铁
- vc++指针回收的问题
m_Pen.CreatePen(PS_COSMETIC,5,RGB(130, 120, 120));
hGloPen = (HPEN)m_Pen;
CPen* pPen ;
CPen* ppPen = pPen->FromHandle(hGloPen);
CPen* oldPen;
oldPen = m_pCurDC->SelectObject(ppPen);
m_pCurDC->MoveTo(m_ptOld);
m_pCurDC->LineTo(point);
m_ptOld = point;
if(hGloPen != NULL)
{
m_pCurDC->SelectObject(oldPen);
}
CPen m_Pen;
m_Pen.CreatePen(PS_COSMETIC,5,RGB(130, 120, 120));
CPen *oldPen;
oldPen = m_pCurDC->SelectObject(m_Pen);
m_pCurDC->MoveTo(m_ptOld);
m_pCurDC->LineTo(point);
m_ptOld = point;
m_pCurDC->SelectObject(oldPen);LOGPEN logpen;
读取HPEN的信息m_Pen.GetObject(sizeof(LOGPEN),&logpen);
CPen m_Pen;
m_Pen.CreatePen(PS_COSMETIC,5,RGB(130, 220, 220));
hGloPen = (HPEN)m_Pen;
CPen* pPen ;//= new CPen(PS_COSMETIC,5,RGB(230, 120, 120));
CPen::FromHandle(hGloPen);
CPen* ppPen = pPen->FromHandle(hGloPen);
CPen* oldPen;
if(ppPen != NULL)
{
oldPen = m_pCurDC->SelectObject(ppPen);
}
else
{
oldPen = m_pCurDC->SelectObject(&m_Pen);
}
m_pCurDC->MoveTo(m_ptOld);
m_pCurDC->LineTo(point);
m_ptOld = point;
m_pCurDC->SelectObject(oldPen);
但是如果一旦我把HPEN的赋值放到其他函数中,系统选取的画笔就是默认画笔,但是ppPen指针又不为空,真的好奇怪呀!
DeleteObject(hGloPen);
hGloPen = (HPEN)m_Pen.Detach();
CPen myPen;
myPen.CreateSolidPen( PS_COSMETIC, 1, RGB(255,255,0) );
HPEN hMyPen = (HPEN) myPen;
难道有问题?