使用picture控制項動態顯示**方法
一控制項適應於**尺寸
新增乙個picture控制項,修改id為idc-picture,並新增一cbitmap m_bmp成員變數
在oninitdialog()函式中新增如下**
if(m_bmp.m_hobject!=null) m_
//以絕對路徑載入bmp**
hbitmap hbmp=(hbitmap)::loadimage(afxgetinstancehandle(),"1.bmp",image_bitmap,
0,0,lr_createdibsection | lr_loadfromfile);
if(hbmp==null) return false;
//獲得載入點陣圖的檔案資訊
m_bmp.attach(hbmp);
dibsection ds;
bitmapinfoheader &bminfo=ds.dsbmih;//獲得位圖資訊圖
m_bmp.getobject(sizeof(ds),&ds);
int cx=bminfo.biwidth;//獲得位圖寬度
int cy=bminfo.biheight;//獲得位圖高度
//該段程式根據圖象的寬和高,調整控制項大小,讓它正好顯示一張**
crect rect;
getdlgitem(idc_pictrue)->getwindowrect(&rect);//獲得控制項所在矩形區域
screentoclient(&rect);
getdlgitem(idc_pictrue)->movewindow(rect.left,調整控制項大小
在onpaint()函式中新增如下**
//三種方法獲得pictrue控制項dc,圖象將被繪製在控制項上
cpaintdc dc(getdlgitem(idc_pictrue));
//cpaintdc dc(this);
//cdc dc;
//dc.m_hdc=::getdc(null);
crect rcclient;
getdlgitem(idc_pictrue)->getclientrect(&rcclient);
cdc memdc;
memdc.createcompatibledc(&dc);
cbitmap bitmap;
bitmap.createcompatiblebitmap(&dc,rcclient.width(),rcclient.height());
memdc.selectobject(&bitmap);
cwnd::defwindowproc(wm_paint,(wparam)memdc.m_hdc,0);
cdc maskdc;
maskdc.createcompatibledc(&dc);
cbitmap maskbitmap;
maskbitmap.createbitmap(rcclient.width(),rcclient.height(),1,1,null);
maskdc.selectobject(&maskbitmap);
maskdc.bitblt(0,0,rcclient.width(),rcclient.height(),&memdc,rcclient.left,
cbrush brush;
brush.createpatternbrush(&m_bmp);
dc.fillrect(rcclient,&brush);
dc.bitblt(rcclient.left,
rcclient.left,
二**適用於控制項尺寸
新增乙個picture控制項,修改id為idc-picture
在onpaint()函式中新增如下**
cwnd *pwnd=getdlgitem(idc_pictrue);//獲得pictrue控制項視窗的控制代碼
crect rect;
pwnd->getclientrect(&rect);//獲得pictrue控制項所在的舉行區域
cdc *pdc=pwnd->getdc();//獲得pictrue控制項的dc
istream *pstm;
cfilestatus fstatus;
cfile file;
long cb;
ipicture *ppic;//定義顯示**的介面(可顯示jpg格式**)
cstring m_spath="1.bmp";//設定想要顯示的**
//開啟圖象檔案,獲取檔案位元組數
if(file.open(m_spath,cfile::moderead) && file.getstatus(m_spath,fstatus)
cb=fstatus.m_size)!=-1))
}}//裝載圖象檔案
if(succeeded(oleloadpicture(pstm,fstatus.m_size,true,iid_ipicture,(lpvoid*)&ppic)))
**顯示通用模組
首先為類新增如下兩個函式和乙個成員變數ipicture* m_ppicture;
//**載入函式
hresult loadfrombuffer(byte *pbuff, int nsize)
return bresult;
}//**顯示函式
bool drawfromfile(cstring filename, cdc *pdc)
return true;
}然後在onpaint()函式中顯示
void cdialogdlg::onpaint()
C和C 中const的用法異同總結
c中const的用法總結起來主要分為以下兩種 1 在定義變數時使用 由於const常量在定義後不能被修改,所以在定義時一定要進行初始化操作 a 最簡單的用法,說明變數為乙個常變數 在以下例子裡,int 和const的先後順序可以改變的,這無所謂 const int a 100 int const b...
《逍遙遊》中「之」「而」「以」的用法總結
翻譯下列句子 1是鳥業,海運則將徙於南冥,南冥者,天池也。2天之蒼蒼,其正色耶,其遠而無所至其極也。3且夫水之積也不厚,則其負大舟也無力。4奚以之九萬里而南為?5故夫知效一官,行比一鄉,德合一君,而徵一國者6故曰 至人無己,神人無功,聖人無名。之 1鯤之 取獨 大 2鵬之 的 背 3其翼若垂天之 的...
影象處理中的梯度 梯度方向總結
一 數學中的方向導數與梯度 方向導數為函式沿某一指定方向的變化率。方向導數的定義為 若此時的極限存在。其中為與l同方向的單位向量,該方向導數就是處沿方向l的變化率。進而有,其中為方向l的方向餘玄。向量稱為函式在點的梯度,記為。若函式在點可微分,與方向l同向的單位向量,則 其中,此式表明方向導數與梯度...