VC窗体的非客户区擦除有关问题
VC窗体的非客户区擦除问题
VC窗体的非客户区擦除,是响应哪个函数,OnEraseBkgnd里面传放的是客户区的CDC指针???
------解决思路----------------------
WM_NCPAINT
------解决思路----------------------
OnEraseBkgnd是客户区的吧。应该响应WM_NCPAINT吧
------解决思路----------------------
偷懒一点的 可以先调用 父类::OnNcPaint , 然后绘制你感兴趣的部分
------解决思路----------------------
GetWindowRect返回的起始坐标是(-8,-8), 的话
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); 就是 +8;+8
试试 -8,-8 时 不要 OffsetRect
------解决思路----------------------
自绘标题栏 还是用无边框窗体 在客户区绘制比较简单些, 否则系统的某些操作很容易暴露原始边框或闪烁
------解决思路----------------------
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); 就是 +8;+8
不是 没有用 ! 影响 rcWin
------解决思路----------------------
pDC->BitBlt(0,0,nTitleWidth,nTitleHeight,&memDC,0,0,SRCCOPY);
rcWin.left, rcWin.top ??
------解决思路----------------------
if(rcWin.left>0) ////////////, -rcWin.top)
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); --8 就是 +8;+8
------解决思路----------------------
没发现这个问题。
请搜索
“OwnerDrawDlg”
VC窗体的非客户区擦除,是响应哪个函数,OnEraseBkgnd里面传放的是客户区的CDC指针???
------解决思路----------------------
WM_NCPAINT
------解决思路----------------------
OnEraseBkgnd是客户区的吧。应该响应WM_NCPAINT吧
------解决思路----------------------
偷懒一点的 可以先调用 父类::OnNcPaint , 然后绘制你感兴趣的部分
------解决思路----------------------
GetWindowRect返回的起始坐标是(-8,-8), 的话
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); 就是 +8;+8
试试 -8,-8 时 不要 OffsetRect
------解决思路----------------------
自绘标题栏 还是用无边框窗体 在客户区绘制比较简单些, 否则系统的某些操作很容易暴露原始边框或闪烁
------解决思路----------------------
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); 就是 +8;+8
不是 没有用 ! 影响 rcWin
------解决思路----------------------
pDC->BitBlt(0,0,nTitleWidth,nTitleHeight,&memDC,0,0,SRCCOPY);
rcWin.left, rcWin.top ??
------解决思路----------------------
if(rcWin.left>0) ////////////, -rcWin.top)
OffsetRect(&rcWin, -rcWin.left, -rcWin.top); --8 就是 +8;+8
------解决思路----------------------
没发现这个问题。
请搜索
“OwnerDrawDlg”