1.显示背景图片:
2.画圈画点:在OnPaint()添加:
CClientDC dc(this);
CPen pen(PS_SOLID,5,RGB(200,110,0));//定义画笔
dc.SelectObject(&pen);//选择画笔
CBrush * brush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc.SelectObject(brush);
dc.Ellipse(0,0,460,460);//画圆
dc.Ellipse(227,227,233,233);
CPen cpen(PS_SOLID,10,RGB(0,110,0));
dc.SelectObject(&cpen);
dc.Ellipse(100,100,109,109);
3.使用组合框控件ComboBox
((CComboBox *)GetDlgItem(IDC_COMBO2))->AddString("COM1");//往组合框中添加项
((CComboBox *)GetDlgItem(IDC_COMBO2))->AddString("COM2");
((CComboBox *)GetDlgItem(IDC_COMBO2))->AddString("COM3");
((CComboBox *)GetDlgItem(IDC_COMBO2))->AddString("COM4");
((CComboBox *)GetDlgItem(IDC_COMBO2))->SetCurSel(0);//设置默认选择项
int song;//记录用户选择了第几项
CString ss;//记录项的内容
song=((CComboBox *)GetDlgItem(IDC_COMBO2))->GetCurSel();
((CComboBox *)GetDlgItem(IDC_COMBO2))->GetLBText(song,ss);
MessageBox(ss,"提示");
4.傻瓜式初始化SOCKET
1.在StdAfx.h中 #include<Afxsock.h>
2.在App类中initinstance中添加
if(!AfxSocketInit())
{
AfxMessageBox("初始化失败");
return FALSE;
}
5.傻瓜式添加GDI+
1.在StdAFX.h中添加:注意:在原有#.......后面添加
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
2.在APP类中
ULONG_PTR m_gdiplusToken;
initinstance: //注意:加在第一行之后
CWinApp::InitInstance();
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken,&gdiplusStartupInput,NULL);
exitinsttance:
Gdiplus::GdiplusShutdown(m_gdiplusToken);
3.显示图片
Graphics graphics(GetDC()->m_hDC);
Image image(L"song.jpg");
graphics.DrawImage(&image,0,0);
6.把内存中的JPG图片显示出来
void CSong1Dlg::bufftopic(char *video_data, int size)
{
IPicture * pPic;
IStream * pStm;
//分配全局存储空间
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,size);
LPVOID pvData=NULL;
//锁定分配内存块
pvData=GlobalLock(hGlobal);
//复制数据包video_data到pvData
memcpy(pvData,video_data,size);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
ULARGE_INTEGER pSeek;
LARGE_INTEGER dlibMove={0};
pStm->Seek(dlibMove,STREAM_SEEK_SET,&pSeek);
Sleep(15);
//装入图形文件
if(FAILED(OleLoadPicture(pStm,size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{//附:假如video_data这个数组包含的图像有错,则OleLoadPicture轻易产生读写内存错误
pPic->Release();
pStm->Release();
return;
}
Image img(pStm,0);
Graphics mGraphics(GetDC()->m_hDC);
mGraphics.DrawImage(&img,0,0);
mGraphics.~Graphics();
pPic->Release();
pStm->Release();
}
7.给对话框添加背景图片
1.在对话框类中添加两个变量:
CBrush m_brBack;
CBitmap m_bmBack;
2.在对话框初始化函数OnInitDialog()中加载位图资源
.......................
m_bmBack.DeleteObject();
m_brBack.DeleteObject();
m_bmBack.LoadBitmap(IDB_BITMAP1);
m_brBack.CreatePatternBrush(&m_bmBack);
.........................
3.重载OnCtlColor()函数,将对话框背景图片绘制到对话框上
HBRUSH CMfc2Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC her
if(nCtlColor==CTLCOLOR_DLG)
{
pDC->SetBkMode(TRANSPARENT);
return m_brBack;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}