怎样刷新非客户区解决方法
怎样刷新非客户区
我想用一张位图覆盖掉菜单栏,响应了OnNcPaint()
但程序运行后,位图给菜单栏背景遮住了,该怎么做才能把位图刷新显示出来?
void CShapeFrame::OnNcPaint()
{
CDC *dc=GetWindowDC();
CRect rcMenu;
....获取rcMenu的值
//画菜单背景
if(!DrawStretch(dc-> GetSafeHdc(),&rcMenu,(HBITMAP)m_bmpNormal))
}
//DrawStretch用dc把m_bmpNormal填入rcMenu,该函数没问题
------解决方案--------------------
菜单有自己的绘制过程,你需要使用一个自绘的菜单。
------解决方案--------------------
这可能要处理NcHitest消息,个人感觉有难度
------解决方案--------------------
发送WM_PAINT消息,或是 InvalidateRect,根据选择决定用哪个.
我想用一张位图覆盖掉菜单栏,响应了OnNcPaint()
但程序运行后,位图给菜单栏背景遮住了,该怎么做才能把位图刷新显示出来?
void CShapeFrame::OnNcPaint()
{
CDC *dc=GetWindowDC();
CRect rcMenu;
....获取rcMenu的值
//画菜单背景
if(!DrawStretch(dc-> GetSafeHdc(),&rcMenu,(HBITMAP)m_bmpNormal))
}
//DrawStretch用dc把m_bmpNormal填入rcMenu,该函数没问题
------解决方案--------------------
菜单有自己的绘制过程,你需要使用一个自绘的菜单。
------解决方案--------------------
这可能要处理NcHitest消息,个人感觉有难度
------解决方案--------------------
发送WM_PAINT消息,或是 InvalidateRect,根据选择决定用哪个.