| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2350 人关注过本帖
标题:更改MDI中主框架窗口MainFrame的背景
只看楼主 加入收藏
hlmzrdongdong
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖北武汉
等 级:版主
威 望:1
帖 子:99
专家分:145
注 册:2008-10-24
结帖率:100%
收藏
 问题点数:0 回复次数:0 
更改MDI中主框架窗口MainFrame的背景
应用Wizard生成的MDI程序中Frame的背景是黑色的,本文将讨论如何更改该背景。需要之处的是Frame的客户区并不是由MainFrame维护的,其背景窗口的句柄为m_hWndMDIClient。故而更改背景的思路是将该句柄指向我们自行设计的窗口类。
首先新建一个窗口类,继承于CWnd,然后重写OnEreaseBkgnd()函数。
程序代码:
class CFmBk : public CWnd  
{  
// Construction  
public:  
    CFmBk();  
  
// Attributes  
public:  
  
// Operations  
public:  
  
// Overrides  
    // ClassWizard generated virtual function overrides  
    //{{AFX_VIRTUAL(CFmBk)  
    //}}AFX_VIRTUAL  
  
// Implementation  
public:  
    virtual ~CFmBk();  
  
    // Generated message map functions  
protected:  
    //{{AFX_MSG(CFmBk)  
    afx_msg BOOL OnEraseBkgnd(CDC* pDC);  
    //}}AFX_MSG  
    DECLARE_MESSAGE_MAP()  
};  



程序代码:
#include "stdafx.h"  
#include "ChgFrmBk.h"  
#include "FmBk.h"  
  
#ifdef _DEBUG  
#define new DEBUG_NEW  
#undef THIS_FILE  
static char THIS_FILE[] = __FILE__;  
#endif  
  
/////////////////////////////////////////////////////////////////////////////  
// CFmBk  
  
CFmBk::CFmBk()  
{  
}  
  
CFmBk::~CFmBk()  
{  
}  
  
  
BEGIN_MESSAGE_MAP(CFmBk, CWnd)  
    //{{AFX_MSG_MAP(CFmBk)  
    ON_WM_ERASEBKGND()  
    //}}AFX_MSG_MAP  
END_MESSAGE_MAP()  
  
  
/////////////////////////////////////////////////////////////////////////////  
// CFmBk message handlers  
  
BOOL CFmBk::OnEraseBkgnd(CDC* pDC)   
{  
    // TODO: Add your message handler code here and/or call default  
    CRect rt;  
    GetClientRect(&rt);  
    pDC->FillSolidRect(&rt,RGB(255,0,0));//设置背景为红色  
    return true;  
}  

准备该类后,在CMainFrame中重写OnCreateClient()函数:
程序代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)   
{  
    // TODO: Add your specialized code here and/or call the base class  
    if(CMDIFrameWnd::OnCreateClient(lpcs,pContext))  
    {  
        m_FmClient.SubclassWindow(m_hWndMDIClient);  
        return TRUE;  
    }  
  
      
    return FALSE;  
} 
搜索更多相关主题的帖子: 继承 如何 新建 
2011-11-29 19:41
快速回复:更改MDI中主框架窗口MainFrame的背景
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018726 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved