日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对话框找不到WM_ERASEBKGND消息的解决方法与对话框背景图片的载入方法

發布時間:2023/12/9 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对话框找不到WM_ERASEBKGND消息的解决方法与对话框背景图片的载入方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From:? http://wmnmtm.blog.163.com/blog/static/38245714201041535119716/


為了讓對話框程序更為漂亮,一般都是在窗口的WM_ERASEBKGND消息處理函數OnEraseBkgnd中添加如下代碼.

BOOL CMFCtestDlg::OnEraseBkgnd(CDC* pDC) {// TODO: Add your message handler code here and/or call defaultCRect rect;CPaintDC dc(this);GetClientRect(&rect);dc.FillSolidRect(rect,RGB(0,255,0));//對話框背景顯示為綠色return TRUE;// return CDialog::OnEraseBkgnd(pDC); }?????? 但在對話框程序中,我們打開MFC ClassWizard中的Message maps,找不到WM_ERASEBKGND消息的.雖然對話框也是窗口,所以對話框也會有此消息的響應的.但是MFC把對話框中的窗口消息WM_ERASEBKGND給過濾掉了,這樣做是為了讓我們更著重于對話框的特有消息與控件消息.為了在對話框中能處理WM_ERASEBKGND消息,我們就需要把這個消息找出來.

打開MFC ClassWizard,選擇Class Info項.然后在Advanced options下的Message filter選擇: Window ,點擊OK,關閉MFC ClassWizard,后,重新打開就可以看到WM_ERASEBKGND消息了.

?

對話框載入背景圖也可以在WM_ERASEBKGND消息處理函數中進行.如下代碼

BOOL CMFCtestDlg::OnEraseBkgnd(CDC* pDC) {// TODO: Add your message handler code here and/or call defaultCRect rect;CPaintDC dc(this);GetClientRect(&rect);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBKG;bmpBKG.LoadBitmap(IDB_DLGBITMAP);//載入位圖,IDB_DLGBITMAP是在ResourceView里邊導入的位圖IDBITMAP bmp;bmpBKG.GetBitmap(&bmp);CBitmap* pOldBMP = dcMem.SelectObject(&bmpBKG);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);return TRUE;// return CDialog::OnEraseBkgnd(pDC); }

?

查看/建立類向導/ClassInfo/Advanced Options/:Message filter:dialog->window


總結

以上是生活随笔為你收集整理的对话框找不到WM_ERASEBKGND消息的解决方法与对话框背景图片的载入方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。