📄 subject_32506.htm
字号:
<p>
序号:32506 发表者:梦沧海 发表日期:2003-03-12 16:50:36
<br>主题:有没有方法改变对话框背景图案,不是背景颜色呀!请指教!
<br>内容:谢谢,请给一些具体代码,怎么使用WM_ERASEBKGND?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:高扬 回复日期:2003-03-12 18:19:06
<br>内容:http://www.copathway.com/cndevforum/subject_view.asp?subject_id=31540&forum_id=52
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:梦沧海 回复日期:2003-03-13 13:17:27
<br>内容:BOOL CW05Dlg::OnEraseBkgnd(CDC* pDC) <BR>{<BR> CDialog::OnEraseBkgnd(pDC);<BR><BR> m_pic2.SubclassWindow( m_hWnd );<BR> m_pic2.m_nMessageHandler = CPictureWindow::BackGroundPaint;<BR> m_pic1.Load("dlg_bk.bmp");<BR><BR> return CDialog::OnEraseBkgnd(pDC);<BR>}<BR>这个代码中m_pic1是什么类型变量,在哪里定义!<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:高扬 回复日期:2003-03-13 17:11:06
<br>内容:恩,应该是cbitmap,那个m_pic1应该是从cwnd中继承来的<BR>参考下面:<BR>class CBkgWnd : public CWnd<BR>{<BR>public:<BR> CBkgWnd();<BR> virtual ~CBkgWnd();<BR><BR> // ClassWizard generated virtual function overrides<BR> //{{AFX_VIRTUAL(CBkgWnd)<BR> //}}AFX_VIRTUAL<BR><BR> CBitmap m_bmpBackGround ; <BR> CSize m_sizeClient;<BR><BR>protected:<BR> // Generated message map functions<BR> //{{AFX_MSG(CBkgWnd)<BR> afx_msg void OnSize(UINT nType, int cx, int cy);<BR> afx_msg BOOL OnEraseBkgnd(CDC* pDC);<BR> //}}AFX_MSG<BR> DECLARE_MESSAGE_MAP()<BR>};<BR><BR>class CMainFrame : public CMDIFrameWnd<BR>{<BR> DECLARE_DYNAMIC(CMainFrame)<BR>public:<BR> CMainFrame();<BR>// Overrides<BR> // ClassWizard generated virtual function overrides<BR> //{{AFX_VIRTUAL(CMainFrame)<BR> public:<BR> virtual BOOL PreCreateWindow(CREATESTRUCT& cs);<BR> virtual BOOL CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* <BR>pWindowMenu); <BR> //}}AFX_VIRTUAL<BR><BR>private:<BR> CBkgWnd m_BkGrdWnd;<BR>}<BR>CBkgWnd::CBkgWnd() : m_sizeClient(0,0)<BR>{<BR>}<BR><BR>CBkgWnd::~CBkgWnd()<BR>{<BR>}<BR><BR>BEGIN_MESSAGE_MAP(CBkgWnd, CWnd)<BR> //{{AFX_MSG_MAP(CBkgWnd)<BR> ON_WM_SIZE()<BR> ON_WM_ERASEBKGND()<BR> //}}AFX_MSG_MAP<BR>END_MESSAGE_MAP()<BR><BR><BR>BOOL CBkgWnd::OnEraseBkgnd(CDC* pDC) <BR>{<BR>// Draw your bitmap<BR> return TRUE;<BR>}<BR><BR>void CBkgWnd::OnSize(UINT nType, int cx, int cy) <BR>{<BR> <BR> Default(); <BR> // if the app is just starting up, save the window<BR> // dimensions and get out<BR> if ((m_sizeClient.cx == 0) && (m_sizeClient.cy==0))<BR> {<BR> m_sizeClient.cx = cx;<BR> m_sizeClient.cy = cy;<BR> return ;<BR> }<BR><BR> // if the size hasn't changed, break and pass to default<BR> if ((m_sizeClient.cx == cx) && (m_sizeClient.cy == cy))<BR> { <BR> return;<BR> }<BR><BR> // window size has changed so save new dimensions and force<BR> // entire background to redraw, including icon backgrounds<BR> m_sizeClient.cx = cx;<BR> m_sizeClient.cy = cy;<BR> <BR> RedrawWindow(NULL, <BR>NULL,RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW|RDW_ALLCHILDREN); <BR> <BR> return ; <BR>}<BR>BOOL CMainFrame::CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* <BR>pWindowMenu) <BR>{ <BR> if (CMDIFrameWnd::CreateClient(lpCreateStruct, pWindowMenu))<BR> { <BR> m_BkGrdWnd.SubclassWindow(m_hWndMDIClient); <BR> return TRUE;<BR> }<BR> return FALSE;<BR>}<BR><BR>2003-3-13 17:17:30
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -