1. c++ 怎麼給對話框添加背景圖片
用CImage類.
在onpaint()中
if(IsIconic())
{
.......//系統代碼,不修改
}
else//在else中增加如下代碼,對JPG,BMP,PNG(背景透明圖片)有效
{
CRectrc;
GetClientRect(rc);
CImageimage;
image.Load(_T("c:\1.jpg"));//圖片文件路徑
if(image.GetBPP()==32)
{
inti;intj;
for(i=0;i<image.GetWidth();i++)
{
for(j=0;j<image.GetHeight();j++)
{
byte*pByte=(byte*)image.GetPixelAddress(i,j);
pByte[0]=pByte[0]*pByte[3]/255;
pByte[1]=pByte[1]*pByte[3]/255;
pByte[2]=pByte[2]*pByte[3]/255;
}
}
}
image.Draw(GetDC()->m_hDC,rc);
}
2. 怎麼給MFC的對話框加背景圖片
1、新建MFC應用程序。
3. VC++的MFC中,如何給基本對話框加上JPG格式的背景圖片
在這個對話框類里添加相應wm_paint的消息處理用BitBlt(。。。)或者stretchblt(。。。)貼圖
具體查看msdn
4. vc怎麼在工具欄加背景圖片
先從CToolBar派生一個類CSXBar(名字隨便取啊)
頭文件里(CSXBar.h)
classCSXBar:publicCToolBar
{
public:
...
protected:
//{{AFX_MSG(CSXBar)
afx_msgBOOLOnEraseBkgnd(CDC*pDC);//聲明消息相應函數
//}}AFX_MSG
}
源文件里(CSXBar.cpp)
添加消息
BEGIN_MESSAGE_MAP(CSXBar,CToolBar)
//{{AFX_MSG_MAP(CSXBar)
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
添加消息相應函數
BOOLCSXBar::OnEraseBkgnd(CDC*pDC)
{
//TODO:/orcalldefault
CBitmapm_bk;
m_bk.LoadBitmap(IDB_BK);
CDCm_dcbk;
m_dcbk.CreateCompatibleDC(pDC);
BITMAPm_bkInfo;
m_bk.GetBitmap(&m_bkInfo);
m_dcbk.SelectObject(&m_bk);
CRectrect;
GetClientRect(&rect);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&m_dcbk,0,0,m_bkInfo.bmWidth,m_bkInfo.bmHeight,SRCCOPY);
return1;
}
一個新的類就做好了
然後在MainFrame頭文件里包涵自己的類頭文件
#include"SXBar.h"
最後一步,將原來的
CToolBarm_wndToolBar;
改成
CSXBarm_wndToolBar;
就完工了
記住了,分四步:
派生新的類
添加消息響應
編寫消息相應函數
調用新的類
5. vc++如何給窗體添加背景圖片
三步。
第一步:
選好.bmp的類型的圖片。在資源視圖中導入。隨便復制到.res文件夾下。
第二步。在對話框上添加picture控制項,調整到大小。右擊屬性選擇Type選擇Bitmap.
Image下拉組合框選擇你導入的圖片。運行時即可顯示圖片。
如果要設置和窗體一樣的大小SetWindowPos就可以了。查查這個函數的作用
6. Vc怎麼把mfc,win32對話框背景,換成圖片,JPG格式,png格式的
JPEG是一種圖像壓縮標准,很多精美的圖片都是採用這種格式標准,其特點是文件體積較小,而且支持24位色深。但是,Windows9x只支持點陣圖文件(即以bmp為擴展名的文件)的牆紙。下面這個程序就是將以jpg或jpeg為擴展名的圖片文件轉化為點陣圖文件,並通過修改注冊表的鍵值來通知Windows更換牆紙。本程序使用了一個Tform;一個OpenPictureDialog用來讓用戶選擇圖片;三個SpeedButton;分別用來打開OpenPictureDialog對話框,確定更換牆紙,退出程序。程序全部代碼如下:unitUnit1;interfaceusesWindows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,jpeg,registry,ExtDlgs,StdCtrls,Buttons;typeTForm1=class(TForm)SpeedButton1:TSpeedButton;SpeedButton2:TSpeedButton;SpeedButton3:TSpeedButton;OpenPictureDialog1:TOpenPictureDialog;procereSpeedButton1Click(Sender:TObject);procereSpeedButton2Click(Sender:TObject);procereSpeedButton3Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.DFM}procereTForm1.SpeedButton1Click(Sender:TObject);beginopenpicturedialog1.execute;{打開OpenPictureDialog對話框}end;procereTForm1.SpeedButton2Click(Sender:TObject);varreg:tregistry;{Tregistry對象在Registry單元中聲明,需要在Uese中引用Registry單元}jpeg:tjpegimage;{Tjpegimage對象在Jpeg單元中聲明,需要在Uese中引用Jpeg單元}bmp:tbitmap;beginif(openpicturedialog1.filename=``)then{判斷OpenPictureDialog1中有無文件被選中}messagedlg(`請選擇一張圖片`,mtinformation,[mbOK],0)elsebeginjpeg:=tjpegimage.Create;jpeg.LoadFromFile(openpicturedialog1.filename);{載入被用戶選中的文件}bmp:=tbitmap.Create;bmp.assign(jpeg);bmp.savetofile(`c:\windows\wall.bmp`);{將轉換成功的文件保存的路徑及文件名}reg:=tregistry.Create;reg.rootkey:=hkey_current_user;{設置根鍵名稱}reg.openkey(`controlpanel\desktop`,false);{打開ControlPanel\Desktop路徑對應的主鍵}reg.writestring(`tilewallpaper`,`0`);reg.writestring(`wallpaper`,`c:\windows\wall.bmp`);{覆蓋並寫入新值TileWall-paper和Wallpaper串}systemparametersinfo(spi_setdeskwallpaper,0,nil,spif_sendchange);{通知win-dows更換牆紙}reg.closekey;{寫入更改內容並關閉注冊表}reg.Free;{釋放對象}close;end;end;procereTForm1.SpeedButton3Click(Sender:TObject);beginclose;end;end.此程序只能將以jpg或jpeg為擴展名的圖片文件轉化為Windows的牆紙,因此應在OpenPictureDialog控制項的Filter屬性中篩選顯示文件的類型,最好設置為JPEGImageFile(*.jpg)和JPEGImageFile(*.jpeg)文件。程序在中文Windows98,Delphi4.0下編譯通過
7. VC怎麼給簡單對話框應用程序添加背景圖片
//在public中定義如下: CBrush m_brBk; CBitmap bmp;2. TestDlg.cpp文件中 構造函數CBkcolorDlg::CBkcolorDlg(CWnd* pParent /*=NULL*/) : CDialog(CBkcolorDlg::IDD, pParent)中,添加如下代碼: //用CBitmap ::LoadBitmap載入點陣圖資源 ,IDB_BITMAP_BKBMP是點陣圖資源的ID標識 bmp.LoadBitmap(IDB_BITMAP_BKBMP); 在初始化對話框的函數CBkcolorDlg::OnInitDialog()中添加如下代碼 m_brBk.CreatePatternBrush(&bmp); //創建具有指定點陣圖模式的邏輯刷子 bmp.DeleteObject();3. 最後在打開類向導,找到 WM_CTLCOLOR 消息,重載得對應函數 OnCtlColor(), if (pWnd == this){return m_brBk;}return hbr;}這樣做就可以給對話框添加簡單的背景圖片了,此代碼經過測試。
8. VC6.0MFC中怎樣給對話框添加背景圖片
你添加的這個不是bmp點陣圖文件
附加點陣圖的時候,不能單單是把文件後綴改成.bmp
你可以用畫圖,或者其他看圖工具,打開圖片後另存為bmp格式
再插入的時候,就會變成點陣圖附加到項目中了
附加了以後,圖片的id會變成IDB_BITMAP1,你可以改成自己想要的名字
9. vc++如何添加背景圖片
方法有很多種,這里簡單介紹三種,以修改對話框的背景為例。
方法一:
1、聲明成員變數CBrush m_brush;
2、在InitDialog中添加代碼:
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1); //這個IDB_BITMAP1要自己添加
m_brush.CreatePatternBrush(&bmp);
3、重載對話框的OnCtlColor,改最後的返回值:
return (HBRUSH)m_brush;
方法二:
把下面這段代碼加進OnPaint()里就行了
CPaintDC dc(this);
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1); //這個IDB_BITMAP1要自己添加
CBrush brush;
brush.CreatePatternBrush(&bitmap);
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.Rectangle(0,0,200,200); // 這些參數可以調整圖片添加位置和大小
dc.SelectObject(pOldBrush);
方法三:使用StretchBlt()函數,具有圖像自適應窗體功能
CPaintDC dc(this);
CBitmap m_bmpBK;
m_bmpBK.LoadBitmap(IDB_BITMAP1);
CRect rect;
GetClientRect(&rect);//獲得目標尺寸,即窗口客戶區的坐標
BITMAP bitMap;//點陣圖結構體
m_bmpBK.GetBitmap(&bitMap);//獲得原圖片尺寸
CDC dcMem; //目標DC
dcMem.CreateCompatibleDC(&dc); //創建與dc兼容的內存DC
dcMem.SelectObject(&m_bmpBK);//將點陣圖對象m_bmpBK選入內存DC
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
10. VC++中MFC的對話框插入背景圖片後怎麼讓空間和圖片看起來比較融合
可以設置控制項透明度,這樣"融合"效果可能好看點
VC++開發環境右側屬性有個屬性Transparent=設置成true;大部分控制項都可以設置成透明的,
按鈕呢比較特出,需要重繪。