⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_32506.htm

📁 一些关于vc的问答
💻 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&amp;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>&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnEraseBkgnd(pDC);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pic2.SubclassWindow( m_hWnd );<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pic2.m_nMessageHandler = CPictureWindow::BackGroundPaint;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pic1.Load("dlg_bk.bmp");<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;CBkgWnd();<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual ~CBkgWnd();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// ClassWizard generated virtual function overrides<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_VIRTUAL(CBkgWnd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_VIRTUAL<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap&nbsp;&nbsp;&nbsp;&nbsp;m_bmpBackGround ;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;CSize&nbsp;&nbsp;&nbsp;&nbsp;m_sizeClient;<BR><BR>protected:<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Generated message map functions<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_MSG(CBkgWnd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;afx_msg void OnSize(UINT nType, int cx, int cy);<BR>&nbsp;&nbsp;&nbsp;&nbsp;afx_msg BOOL OnEraseBkgnd(CDC* pDC);<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_MSG<BR>&nbsp;&nbsp;&nbsp;&nbsp;DECLARE_MESSAGE_MAP()<BR>};<BR><BR>class CMainFrame : public CMDIFrameWnd<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;DECLARE_DYNAMIC(CMainFrame)<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMainFrame();<BR>// Overrides<BR>&nbsp;&nbsp;&nbsp;&nbsp;// ClassWizard generated virtual function overrides<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_VIRTUAL(CMainFrame)<BR>&nbsp;&nbsp;&nbsp;&nbsp;public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual BOOL PreCreateWindow(CREATESTRUCT&amp; cs);<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual BOOL CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* <BR>pWindowMenu); <BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_VIRTUAL<BR><BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CBkgWnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_MSG_MAP(CBkgWnd)<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_WM_SIZE()<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_WM_ERASEBKGND()<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_MSG_MAP<BR>END_MESSAGE_MAP()<BR><BR><BR>BOOL CBkgWnd::OnEraseBkgnd(CDC* pDC) <BR>{<BR>//&nbsp;&nbsp;&nbsp;&nbsp;Draw your bitmap<BR>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<BR>}<BR><BR>void CBkgWnd::OnSize(UINT nType, int cx, int cy) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Default();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// if the app is just starting up, save the window<BR>&nbsp;&nbsp;&nbsp;&nbsp;// dimensions and get out<BR>&nbsp;&nbsp;&nbsp;&nbsp;if ((m_sizeClient.cx == 0) &amp;&amp; (m_sizeClient.cy==0))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sizeClient.cx = cx;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sizeClient.cy = cy;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// if the size hasn't changed, break and pass to default<BR>&nbsp;&nbsp;&nbsp;&nbsp;if ((m_sizeClient.cx == cx) &amp;&amp; (m_sizeClient.cy == cy))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;// window size has changed so save new dimensions and force<BR>&nbsp;&nbsp;&nbsp;&nbsp;// entire background to redraw, including icon backgrounds<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_sizeClient.cx = cx;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_sizeClient.cy = cy;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;RedrawWindow(NULL, <BR>NULL,RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW|RDW_ALLCHILDREN);&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR>BOOL CMainFrame::CreateClient(LPCREATESTRUCT lpCreateStruct, CMenu* <BR>pWindowMenu) <BR>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;if (CMDIFrameWnd::CreateClient(lpCreateStruct, pWindowMenu))<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_BkGrdWnd.SubclassWindow(m_hWndMDIClient); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return FALSE;<BR>}<BR><BR>2003-3-13 17:17:30

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -