簡單圖片檢視器小程式原始碼實現
建立對話方塊工程,編輯對話方塊:
建立訊息響應,寫入程式碼:
void CInvalidateDlg::OnBnClickedButton2()////顯示
{
// TODO: 在此新增控制元件通知處理程式程式碼
nType=1;
Invalidate();
}
void CInvalidateDlg::OnBnClickedButton3()////縮小
{
// TODO: 在此新增控制元件通知處理程式程式碼
nType=2;
Invalidate();
}
void CInvalidateDlg::OnBnClickedButton4()///放大
{
// TODO: 在此新增控制元件通知處理程式程式碼
nType=3;
Invalidate();
}
void CInvalidateDlg::OnBnClickedButton1()////選擇按鈕
{
// TODO: 在此新增控制元件通知處理程式程式碼
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrFilter = L"點陣圖檔案(*.bmp)\0*.bmp\0所有檔案(*.*)\0*.*\0\0";
if (fileDlg.DoModal() == IDOK)
{
szfile=fileDlg.GetPathName();
m_PicPath.SetWindowTextW(szfile);
if (m_pBmp != NULL)
{
delete m_pBmp;
//Invalidate();
m_pBmp = NULL;
}
m_pBmp = Bitmap::FromFile(szfile.AllocSysString());
Color bkClr(0, 0, 255);
m_pBmp->GetHBITMAP(bkClr, &hBmp);
nWidth=m_pBmp->GetWidth();
nHeight = m_pBmp->GetHeight();
szfile.ReleaseBuffer();
}
}
void CInvalidateDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用於繪製的裝置上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使圖示在工作區矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 繪製圖示
dc.DrawIcon(x, y, m_hIcon);
}
else
{
PAINTSTRUCT ps;
CDC *pDC=BeginPaint(&ps);
CDC memDC;
if(nType==1)
{
m_pBmp = Bitmap::FromFile(szfile.AllocSysString());
Color bkClr(0, 0, 255);
//CDC *pDC=GetDC();
//CDC memDC;
m_pBmp->GetHBITMAP(bkClr, &hBmp);
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(hBmp);
pDC->BitBlt(100,100,nWidth,nHeight,&memDC,0,0,SRCCOPY);
}
if(nType==2)
{
m_pBmp = Bitmap::FromFile(szfile.AllocSysString());
Color bkClr(0, 0, 255);
//CDC *pDC=GetDC();
//CDC memDC;
m_pBmp->GetHBITMAP(bkClr, &hBmp);
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(hBmp);
pDC->StretchBlt(100,100,nWidth/2,nHeight/2,&memDC,0,0,nWidth,nHeight,SRCCOPY);
}
if(nType==3)
{
m_pBmp = Bitmap::FromFile(szfile.AllocSysString());
Color bkClr(0, 0, 255);
//CDC *pDC=GetDC();
//CDC memDC;
m_pBmp->GetHBITMAP(bkClr, &hBmp);
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(hBmp);
pDC->StretchBlt(100,100,nWidth+50,nHeight+50,&memDC,0,0,nWidth,nHeight,SRCCOPY);
}
EndPaint(&ps);
CDialogEx::OnPaint();
}
}
標頭檔案部分:
Bitmap *m_pBmp;//定義點陣圖物件,派生於Image類
HBITMAP hBmp;
INT nWidth;
INT nHeight;
INT nType;
CString szfile;
注意哦!這是個GDI+專案,需要引入必要的GDI+程式碼。請到之前的文章找GDI+程式碼
相關文章
- 使用 PyQt5 實現圖片檢視器QT
- 非常簡單的使用jqueryfancybox外掛實現的檢視圖片效果jQuery
- javascript實現的圖片簡單切換程式碼例項JavaScript
- Dreamweaver之簡單實現網站佈局、圖片漂浮、區域跳轉、登陸註冊及圖片檢視器網站
- 【iOS】實現一個帶動畫的簡單圖片檢視controller【更新】iOS動畫Controller
- 小視訊app原始碼,動態毛玻璃背景的簡單實現APP原始碼
- FFmpeg程式碼實現視訊轉jpg圖片
- php 實現一個簡單的圖片邊緣檢測PHP
- Python實現簡單網頁圖片抓取完整程式碼例項Python網頁
- 小視訊原始碼,在編輯器中新增自定義的圖片原始碼
- 小視訊原始碼,java使用Thumbnails壓縮圖片原始碼JavaAI
- 實現簡單的輪播圖(單張圖片、多張圖片)
- 原生JS實現類似《掘金》網站的圖片檢視器JS網站
- 小視訊app原始碼,實現簡單的登入介面,輸入賬號密碼APP原始碼密碼
- 短視訊app原始碼,點選檢視圖片,雙指放大APP原始碼
- jQuery 圖片檢視外掛 Magnify 開發簡介(仿 Windows 照片檢視器)jQueryWindows
- 微信小程式簡單封裝圖片上傳元件微信小程式封裝元件
- 在 React 應用程式中實現簡單的頁面檢視跟蹤器React
- 視訊直播原始碼,css實現圖片對角邊框線原始碼CSS
- 短視訊app原始碼,實現原生js圖片預覽效果APP原始碼JS
- 基於Python PIL實現簡單圖片格式轉化器Python
- 小程式實現長按刪除圖片
- 實現一個簡單的視訊聊天室(原始碼)原始碼
- iOS 簡單實現帶圖片的LabeliOS
- 基於51微控制器的藍芽控制小車的簡單實現(有原始碼,無圖) (上篇)藍芽原始碼
- 小程式簡單實現表格佈局
- android網路圖片檢視器Android
- 【vue原始碼】簡單實現directive功能Vue原始碼
- 【附原始碼】小程式初窺之簡單查單詞原始碼
- 小程式–儲存圖片到相簿功能實現
- jquery圖片預載入簡單程式碼例項jQuery
- 實現【檢視更多】功能的程式碼
- canvas實現的簡單餅狀圖程式碼例項Canvas
- win10沒有圖片檢視器怎麼辦 win10找回圖片檢視器的方法Win10
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼
- ios圖片瀏覽器封裝,一句程式碼呼叫,簡單易用iOS瀏覽器封裝
- 深入解析微信小程式頁面中實現的儲存圖片(附程式碼)微信小程式
- 微信小程式--實現圖片懶載入(lazyload)微信小程式