ATL做控件,如果我要在OnDraw中画控件,我应该用啊个DC? 如果我用di.hdcDraw结果画线位置都对,可是输出文字总是向左偏移了一定位置后来我直接用HDC hdc = ::GetDC(m_hWnd);位置都对,可是在控件缩放多次后会出现AtlHiMetricToPixel函数中ATLASSERT(hDCScreen != NULL);断言失败请问我该怎么办? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ATL_DRAWINFO参数里面就带DC.千万不要用::GetDC(m_hWnd);因为ActiveX有很多时候是不创建自己的窗口的(m_bWindowOnly默认为FALSE)。通常会由父窗口调用它的重画函数以及消息处理函数实现显示以及消息处理。 我现在m_bWindowOnly已经设置为TRUE我开始也是用di.hdcDraw可是文字输出它不准啊 原来不是DC的问题 // 画笔设置 LOGPEN lp; HPEN hp; HPEN pOldPen; lp.lopnColor = m_Color; lp.lopnStyle = m_LineType; lp.lopnWidth.x = m_Width; lp.lopnWidth.y = 0; hp = ::CreatePenIndirect(&lp); if(hp) { pOldPen = (HPEN)::SelectObject(hdc,hp); if (pOldPen) { ::MoveToEx(hdc,x1,y1,NULL); ::LineTo(hdc,x2,y2); ::SelectObject(hdc,pOldPen); } } 罪魁祸首在这里:( 我试了试,没什么问题。最好在最后的 ::SelectObject 后加个 ::DeleteObject(hp)。 添加按钮显示直方图 树形控件如何获取。 有关CRecordset如何打开? 请问一下 刚学VC,请问向导自动生成的一下几句宏是什么意思? 为什么提示:'CTypet' : undeclared identifier? 问题:关于给结构体中变量赋值的问题。 请问在vc中如何通过程序在pdf文当中插入图片,写入字符? MDI获取View指针问题????? 谁能帮我把程序编译出来???!!! 命令补齐全都有,居然还会报错!----在线等待! 请问:关于数据库查询
千万不要用::GetDC(m_hWnd);因为ActiveX有很多时候是不创建自己的窗口的(m_bWindowOnly默认为FALSE)。通常会由父窗口调用它的重画函数以及消息处理函数实现显示以及消息处理。
LOGPEN lp;
HPEN hp;
HPEN pOldPen; lp.lopnColor = m_Color;
lp.lopnStyle = m_LineType;
lp.lopnWidth.x = m_Width;
lp.lopnWidth.y = 0; hp = ::CreatePenIndirect(&lp);
if(hp)
{
pOldPen = (HPEN)::SelectObject(hdc,hp);
if (pOldPen)
{
::MoveToEx(hdc,x1,y1,NULL);
::LineTo(hdc,x2,y2);
::SelectObject(hdc,pOldPen);
}
}
罪魁祸首在这里:(
最好在最后的 ::SelectObject 后加个 ::DeleteObject(hp)。