【框架-MFC】MFC MainFrame主客户区添加背景图片或颜色
2014-03-20 09:18
369 查看
解决方案
1、使用 virtual BOOL PreTranslateMessage(MSG* pMsg);截获WM_PAINT消息,并推送WM_PAINT消息
2、在OnPaint事件中添加背景图片或颜色
demo:
1、使用 virtual BOOL PreTranslateMessage(MSG* pMsg);截获WM_PAINT消息,并推送WM_PAINT消息
2、在OnPaint事件中添加背景图片或颜色
demo:
MainFrame.h afx_msg void OnPaint(); virtual BOOL PreTranslateMessage(MSG* pMsg);
MainFrame.cpp BEGIN_MESSAGE_MAP(CMainFrame, CBCGPMDIFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP() BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if(pMsg->hwnd==m_hWndMDIClient && pMsg->message==WM_PAINT) PostMessage(WM_PAINT); return CBCGPMDIFrameWnd::PreTranslateMessage(pMsg); } void CMainFrame::OnPaint() { // CPaintDC dc(this); // device context for painting CDC dc,memdc; dc.m_hDC=::GetDC(this->m_hWndMDIClient); CRect rect; CBitmap bitmap; BITMAP szbitmap; bitmap.LoadBitmap(IDB_BMP_START); bitmap.GetObject(sizeof(BITMAP),&szbitmap); CSize size(szbitmap.bmWidth,szbitmap.bmHeight); memdc.CreateCompatibleDC(&dc); CBitmap *oldbitmap=memdc.SelectObject(&bitmap); GetClientRect(&rect); StretchBlt(dc.m_hDC,0,0,rect.Width(),rect.Height(),memdc.m_hDC,0,0,size.cx,size.cy,SRCCOPY); memdc.SelectObject(oldbitmap); memdc.DeleteDC(); dc.DeleteDC(); CBCGPMDIFrameWnd::OnPaint(); }
resource.h #define IDB_BMP_START 147
*.rc ///////////////////////////////////////////////////////////////////////////// // // Bitmap // IDB_BMP_START BITMAP "res\\图片5.BMP"
相关文章推荐
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- mfc中 控件 对话框 添加颜色 背景图片
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC对话框修改背景颜色或添加背景图片、控件背景与字体颜色的修改
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC中设置对话框颜色、添加背景图片、添加音乐的方法
- MFC 中添加背景图片
- MFC 对话框添加背景图片详细过程(两种方法)
- MFC Ribbon中Button添加背景图片
- vc对话框添加图片背景及改变背景颜色
- MFC添加背景图片方法
- VS2010中如何设置IDE窗口背景颜色、MFC框架背景颜色以及对话框背景颜色?
- mfc窗口添加背景图片
- MFC中 给基于CFormView的单文档添加背景图片