MFC-1

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;
                }

 

 

 

 

 

 

 

 

 

 

 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值