版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 南京工程学院多媒体编程基础课程综合作业说明书题 目 多媒体处理综合应用设计 班 级 学 生 姓 名 刘土豪 学 号 2021003 20一三 年 06 月 07 日一、 程序功能与设计思路设计目标与具有的功能:必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上设计思路:1) 图形处理:Ø 可以选择直线,矩形,椭圆,涂鸦进行绘画Ø 可以选择线的形状:实线,虚线,点线Ø 可以改变线条的颜色Ø 可以改变线条的宽度Ø 可以进行
2、多边形填充颜色并可以改变颜色2) 图片处理:Ø 可以打开BMP格式的图片Ø 可以进行锐化,浮雕,反色等图片处理效果Ø 可以显示鼠标在图片上坐标处的颜色值和颜色3) 文字处理:Ø 实现至少少三种文字特效,比如:文字渐变,旋转体,3D,文字倾斜,下划线,空心字等4) 音乐播放器:Ø 可以打开mp3,wma,wvi格式的歌曲Ø 可以控制音乐的播放、暂停、停止Ø 可以指定播放当前音乐的上一个或下一个音乐Ø 在列表中随意选择要播放的音乐Ø 在播放时,可以获取并显示当前播放音乐的信息Ø 可以调节音乐的音量5
3、)视频播放器:Ø 可以打开MP3,WMA,WMV,AVI,RM,RMVB,FLV,MP4等格式Ø 在列表中随意选择要播放的媒体文件Ø 控制媒体文件的播放、暂停、停止、快进、快退Ø 指定播放当前文件的上一个或下一个媒体文件Ø 在播放时,可以获取并显示当前播放媒体的文件信息Ø 播放模式可以进行进行选择Ø 可以对播放列表或列表中的选项进行删除操作二、 相关原理知识介绍(1) 图形处理:画笔和画刷是绘图中最基本的元素1.画笔(Pen):用于在设备环境中绘制直线,曲线和多边形边框。创建画笔:(1) CPen();(2) CPen(in
4、t nPenStyle, int nWidth, COLORREF crColor);nPenStyle:画笔的样式PS_SOLID 创建一个实线画笔,PS_DASH 创建一个虚线画笔,PS_DOT 创建一个点线画笔nWidth:画笔的宽度crColor:画笔的颜色(颜色用RGB值来描述) 2.画刷(CBrush):常用于填充个区域诸如多边形,椭圆和路径等图形内部区域 创建画刷:(1) CreateSolidBrush 用指定的颜色初始化画刷(2) CreateHatchBrush 用指定的阴影线初始化画刷。(3) CreateBrushIndirect用结构LOGBRUSH中指定的风格、颜色
5、和模式初始化画刷。3.画直线:LineTo(int x,int y) 画椭圆:Ellipse(int x1,int y1, int x2,int y2) 画矩形:Rectangle(int x1,int y1,int x2,int y2)/x1,y1为边界矩形左上角的坐标,x2,y2为边界矩形右下角的坐标(2) 图片处理: BitBlt,用于从源设备中复制位图到目标设备中,BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop)
6、 hdcDest:指向目标设备环境的句柄。nXDest:指定目标矩形区域左上角的X轴逻辑坐标。nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。nWidth:指定源和目标矩形区域的逻辑宽度。nHeight:指定源和目标矩形区域的逻辑高度。hdcSrc:指向源设备环境的句柄。nXSrc:指定源矩形区域左上角的X轴逻辑坐标。nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。(3) 文字处理:输出文字Textout():用当前字体在指定位置处写一个字符串TextOut(int x,in
7、t y,Cstring string):文本起点的x坐标和y坐标以及要绘制的字符串创建字体LOGFONT 结构(4) 音频播放器:使用VC+6.0强大的MFC、AppWizard、Class Wizard和其中的多种控件可以很方便地建立各种应用程序。同时想要实现更高级更复杂的功能,也可以借助ActiveX控件资源,用这些现有的控件资源,可以省去自己编程的复杂过程,从而实现更高级的功能。本次课程设计要使用VC+6.0自带的一个ActiveX控件Windows Media Player控件,建立自己的多媒体播放器三、 界面设计和功能实现1. 主界面设计结构框架图:主界面音频播放器音乐播放器图形处理
8、图片处理文字效果2. 打开VC 6.0,新建MFC工程,基于对话框,名称为多媒体课设3. 向主窗口拖一个Tab控件,并调整大小使之占据2/3主窗口大小,并为Tab添加类向导,添加IDC_TAB1的变量:m_tab完成后在 “多媒体课设Dlg.cpp”中的OnInitDialog添加如下代码:/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set
9、big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization here m_tab.InsertItem(0,"图形处理"); m_tab.InsertItem(1,"图片处理"); m_tab.InsertItem(2,"文字处理"); m_tab.InsertItem(3,"音乐播放");m_tab.InsertItem(4,"音频播放"); RECT rc;m_tab.GetClientRe
10、ct(&rc);m_draw.Create(IDD_DRAW_DIALOG,&m_tab);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);m_picture.Create(IDD_PICTURE_DIALOG,&m_tab);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.Create(IDD_MUSIC_DIALOG,&m_tab);m_music.SetWindowPos(
11、NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_movie.Create(IDD_MOVIE_DIALOG,&m_tab);m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.Create(IDD_WORD_DIALOG,&m_tab);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW); return TRUE; / return TRUE unless you
12、 set the focus to a control在添加类向导OnSelchangeTab1()中添加代码:void CMyDlg:OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereCRect rc;m_tab.GetClientRect(&rc);switch(m_tab.GetCurSel()case 0: m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDE
13、WINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case 1:m_movie.SetWind
14、owPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,S
15、WP_SHOWWINDOW);break;case 2: m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW); m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_wor
16、d.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case 3:m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW); m_draw.SetWindowPos(NULL,5,
17、20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case 4:m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,
18、SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;*pResult = 0;4. 本作业分为5个部分:图形处理,图片处理,文字处理,音乐播放,音频播放(1)分别建立5个资源:选择菜单栏的“插入”,选择窗体,窗体名称分别为:DRAW,Picture,Word,MUSIC,MOVIE并将窗体的样式改为如下:(2)分别为5个窗体创建变量名称:在 “
19、多媒课设Dlg.h”中添加变量:另外将5个部分的头文件全部加到“多媒体课设Dlg.h”中,才能调用哦(3)插入背景图片:菜单栏选择“插入”,选择“资源”,选择“Bitmap”,点击“引入”,选择BMP格式的图片名称为IDB_BITMAP4,在OnPaint()添加如下代码:else/CDialog:OnPaint();CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.
20、LoadBitmap(IDB_BITMAP4);BITMAP bitmap; bmpBackground.GetBitmap(&bitmap); CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);二各个板块设计:(1)图形处理:图形处理设计框架图: 图形处理界面选择图形清空面板改变填充颜色选择线型改变画笔颜色输入线宽实线点线虚
21、线椭圆直线矩形涂鸦设计如图:插件名称ID直线IDC_Line矩形IDC_Rect椭圆IDC_Elipse涂鸦IDC_Tuya线型IDC_Linestyle线宽IDC_Linewidth画笔颜色IDC_Pen color填充颜色IDC_Brushcolor清空面板IDC_clear绘画区域IDC_Show功能实现:在Draw.h添加变量:设置默认值:DRAW:DRAW(CWnd* pParent): CDialog(DRAW:IDD, pParent)/AFX_DATA_INIT(DRAW)m_linewidth = 0;f_move=0;color_pen=RGB(255,0,0);color
22、_brush=RGB(255,255,255);Hcursor=AfxGetApp()->LoadStandardCursor(IDC_CROSS);/AFX_DATA_INIT在OnInitDialog()中设置线型的选择和默认值,代码如下:BOOL DRAW:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereCheckRadioButton(IDC_Line,IDC_Tuya,IDC_Rect);/默认选择画矩形m_linestyle.AddString("实线")
23、;m_linestyle.AddString("虚线");m_linestyle.AddString("点线"); m_linestyle.SetCurSel(0);/默认画实线return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE在OnPaint添加如下代码:void DRAW:OnPaint() CPaintDC dc(this); / device context for
24、painting/ TODO: Add your message handler code hereUpdateData(TRUE);CRect rect;GetDlgItem(IDC_SHOW)->GetWindowRect(&rect);ScreenToClient(&rect);CBrush brush(RGB(255,255,255);dc.FillRect(CRect(rect.left,rect.top+8,rect.right,rect.bottom),&brush);/ Do not call CDialog:OnPaint() for paint
25、ing messages添加LButtonDown函数响应:void DRAW:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultUpdateData(TRUE);m_BeginPoint = point;m_EndPoint = point;SetCapture();/执行这条语句后,当鼠标移动到本窗口以外时,鼠标消息仍然被发送给本窗口;f_move = 1; CRect rect; GetClientRect(&rect);Cl
26、ientToScreen(&rect);CDialog:OnLButtonDown(nFlags, point);添加LButtonUp函数响应:void DRAW:OnLButtonUp(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCDC *dc=GetDC();if(f_move):ReleaseCapture();/停止捕获鼠标消息 draw(point,1); f_move = 0;CDialog:OnLButtonUp(nFlags, poin
27、t);添加MouseMove函数响应:void DRAW:OnMouseMove(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultdraw(point,0);CDialog:OnMouseMove(nFlags, point);给“线型按钮”添加CBN_SELCHANCE响应函数,代码如下:void DRAW:OnSelchangeLinestyle() / TODO: Add your control notification handler code hereC
28、String str;m_linestyle.GetLBText(m_linestyle.GetCurSel(),str);if(0 = strxpare("实线") type = PS_SOLID;if(0 = strxpare("虚线")type = PS_DASH;if(0 = strxpare("点线")type = PS_DOT;添加draw()函数,实现各种功能的绘图:void DRAW:draw(CPoint point, int k)CPen pen(type,m_linewidth,color_pen);CClien
29、tDC ClientDC(this);ClientDC.SelectObject(&pen);CBrush brush(color_brush);ClientDC.SelectObject(&brush);int j; j = GetCheckedRadioButton(IDC_Line,IDC_Tuya);if(f_move)switch(j) case IDC_Rect: ClientDC.SetROP2(R2_NOT); ClientDC.MoveTo(m_BeginPoint); ClientDC.Rectangle(m_BeginPoint.x,m_BeginPoin
30、t.y,m_EndPoint.x,m_EndPoint.y); if(k=1) ClientDC.SetROP2(R2_COPYPEN); ClientDC.MoveTo(m_BeginPoint); ClientDC.Rectangle(m_BeginPoint.x,m_BeginPoint.y,point.x,point.y); m_EndPoint=point; break; case IDC_Line:ClientDC.SetROP2(R2_NOT);ClientDC.MoveTo(m_BeginPoint);ClientDC.LineTo(point); if(k = 1)Clien
31、tDC.SetROP2(R2_COPYPEN);ClientDC.MoveTo(m_BeginPoint);ClientDC.LineTo(point);m_EndPoint=point;break;case IDC_Ellipse:ClientDC.SetROP2(R2_NOT);ClientDC.MoveTo(m_BeginPoint);ClientDC.Ellipse(m_BeginPoint.x,m_BeginPoint.y,m_EndPoint.x,m_EndPoint.y);if(k=1)ClientDC.SetROP2(R2_COPYPEN);ClientDC.MoveTo(m_
32、BeginPoint);ClientDC.Ellipse(m_BeginPoint.x,m_BeginPoint.y,point.x,point.y);m_EndPoint=point;break;case IDC_Tuya:ClientDC.MoveTo(m_BeginPoint);ClientDC.LineTo(point);m_BeginPoint = point;break;给“填充颜色”按钮添加单击响应:void DRAW:OnBrushcolor() / TODO: Add your control notification handler code here CColorDial
33、og m_pColorDlg;m_pColorDlg.m_cc.Flags = CC_ANYCOLOR|CC_ENABLEHOOK;if(m_pColorDlg.DoModal() = IDOK)color_brush = m_pColorDlg.GetColor();给“画笔颜色”按钮添加单击响应:void DRAW:OnPencolor() / TODO: Add your control notification handler code hereCColorDialog m_pColorDlg;m_pColorDlg.m_cc.Flags = CC_ANYCOLOR|CC_ENABLE
34、HOOK;if(m_pColorDlg.DoModal() =IDOK)color_pen = m_pColorDlg.GetColor();添加“情况面板”按钮单击响应:void DRAW:Onclear() / TODO: Add your control notification handler code hereInvalidate();(2)图片处理:图形处理设计框架图: 图片处理界面 打开图片轮廓杂色反色浮雕锐化鼠标处的RGB和颜色蓝绿颜色红设计如图:控件名称ID图形显示区域IDC_DRAW打开IDC_OPEN锐化IDC_sharp浮雕IDC_fudiao反色IDC_fanse轮廓
35、IDC_lunkuo杂色IDC_zase(编辑框)红IDC_RED(编辑框)蓝IDC_GREEN(编辑框)绿IDC_BLUE(编辑框)显示颜色IDC_COLOR实现功能:在Picture.h中添加变量:在OnPaint()添加代码如下:void Picture:OnPaint() CPaintDC dc(this); / device context for painting/ TODO: Add your message handler code hereCDialog:OnPaint();CWnd*pWnd=GetDlgItem(IDC_DRAW);pWnd->UpdateWindo
36、w();DrawPhoto();/ Do not call CDialog:OnPaint() for painting messages添加DrawPhoto()函数,代码如下:void Picture:DrawPhoto() if(!m_hBitmap) return; CBitmap m_bmp; m_bmp.Attach(m_hBitmap); BITMAP bm; m_bmp.GetObject(sizeof(BITMAP),&bm); float fScale; fScale=(float)bm.bmHeight/(float)bm.bmWidth; CWnd*pWnd=G
37、etDlgItem(IDC_DRAW); CDC*pDC=pWnd->GetDC(); CRect reClient; int nWidth,nHeight,nX=0,nY=0; pWnd->GetClientRect(reClient); nWidth=reClient.Width(); nHeight=(int)(float)nWidth*fScale); nX=0; nY=(reClient.Height()-nHeight)/2; if(nHeight>reClient.Height() nHeight=reClient.Height(); nWidth=(int)(
38、float)nHeight/fScale); nX=(reClient.Width()-nWidth)/2; nY=0; CDC dcMem; dcMem.CreateCompatibleDC(pDC); CBitmap *pOldbmp=dcMem.SelectObject(&m_bmp); reClient.DeflateRect(0,0); pDC->Rectangle(reClient); pDC->StretchBlt(nX,nY,nWidth,nHeight,&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY); dcMe
39、m.SelectObject(pOldbmp);给“打开”按钮添加单击响应,代码如下:void Picture:OnOpen() / TODO: Add your control notification handler code herestatic char BASED_CODE szFilter="图片文件(*.bmp)|*.bmp|" CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter);if(IDOK!=dlg.DoModal()return;m_hBitmap=
40、(HBITMAP):LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetDlgItem(IDC_sharp)->EnableWindow(TRUE);Invalidate();给“锐化”按钮添加单击响应,代码如下:void Picture:Onsharp() / TODO: Add your control notification handler code hereint sharpLaplacian9=-1,-1,-1,-
41、1,9,-1,-1,-1,-1; CWnd*pWnd=GetDlgItem(IDC_DRAW);CDC*pDC=pWnd->GetDC();pWnd->UpdateWindow();CRect reClient;pWnd->GetClientRect(reClient);int nWidth=reClient.Width();int nHeight=reClient.Height();COLORREF bkPixel400300;for(int bi=0;bi<nWidth;bi+) for(int bj=0;bj<nHeight;bj+)bkPixelbibj=
42、pDC->GetPixel(bi,bj);int i,j;for(i=1;i<nWidth-1;i+) for(j=1;j<nHeight-1;j+) int rr=0,gg=0,bb=0,index=0; for(int col=-1;col<=1;col+) for(int row=-1;row<=1;row+) COLORREF clr=bkPixeli+rowj+col; rr+=GetRValue(clr)*sharpLaplacianindex; gg+=GetGValue(clr)*sharpLaplacianindex; bb-=GetBValue
43、(clr)*sharpLaplacianindex; index+; if(rr>255) rr=255; else if(rr<0) rr=-rr; if(gg>255) gg=255; else if(gg<0) gg=-gg; if(bb>255) bb=255; else if(bb<0) bb=-bb; pDC->SetPixelV(i,j,RGB(rr,gg,bb); 给“浮雕”按钮添加单击响应,代码如下:void Picture:Onfudiao() / TODO: Add your control notification handle
44、r code hereCStatic *pStatic=(CStatic * )GetDlgItem(IDC_DRAW);CDC *pDC=pStatic->GetDC();CRect rect;pStatic->GetClientRect(&rect);COLORREF color1,color2;BYTE r,g,b;for(int i=0;i<rect.right;i+)for (int j=0;j<rect.bottom;j+)color1=pDC->GetPixel(i,j);color2=pDC->GetPixel(i+1,j+1);r=
45、GetRValue(color1)-GetRValue(color2)+128;g=GetGValue(color1)-GetGValue(color2)+128;b=GetBValue(color1)-GetBValue(color2)+128;if(r>255)r=255;else if (r<0)r=0;else if(g>255)g=255;else if (g<0)g=0;else if(b>255)b=255;else if (b<0)b=0;pDC->SetPixel(i,j,RGB(r,g,b);给“反色”按钮添加单击响应,代码如下:v
46、oid Picture:Onfanse() / TODO: Add your control notification handler code hereCStatic *pStatic=(CStatic * )GetDlgItem(IDC_DRAW);CDC *pDC=pStatic->GetDC();CRect rect;pStatic->GetClientRect(&rect);BYTE r,g,b;COLORREF m_clr; for (int x=0;x<rect.Width();x+) for (int y=0;y<rect.Height();y+
47、)m_clr=pDC->GetPixel(x,y);r=GetRValue(m_clr);g=GetGValue(m_clr);b=GetBValue(m_clr);r=abs(255-r);g=abs(255-g);b=abs(255-b);pDC->SetPixel(x,y,RGB(r,g,b); 给“轮廓”按钮添加单击响应,代码如下:void Picture:Onlunkuo() / TODO: Add your control notification handler code hereCStatic *pStatic=(CStatic * )GetDlgItem(IDC_
48、DRAW);/pStatic->GetClientRect(lp);CDC *pDC=pStatic->GetDC();CRect rect;pStatic->GetClientRect(&rect);int x,y;for (x = 0;x<rect.right;x+)for (y=0;y<rect.bottom;y+)COLORREF m_color;m_color = pDC->GetPixel(x,y);if (m_color =RGB(255,255,255)|(m_color=RGB(0,0,0)|(m_color = RGB(252,1
49、97,30) pDC->SetPixel(x,y,m_color);elsepDC->SetPixel(x,y,RGB(255,255,255);给“杂色”按钮添加单击响应,代码如下:void Picture:Onzase() / TODO: Add your control notification handler code hereCStatic *pStatic=(CStatic * )GetDlgItem(IDC_DRAW);CDC *pDC=pStatic->GetDC();CRect rect;pStatic->GetClientRect(&rect
50、);int r,g,b;for(int i=0;i<rect.right;i+) int *a; int num=rand()%(rect.bottom*2/5); a=new intnum; for (int j=0;j<num;j+) aj=rand()%rect.bottom; r=rand()%255; g=rand()%255; b=rand()%255; pDC->SetPixel(i,aj,RGB(r,g,b); 实现显示鼠标处的颜色:添加MouseMoveh函数响应void Picture:OnMouseMove(UINT nFlags, CPoint poi
51、nt) / TODO: Add your message handler code here and/or call defaultCWnd* temp=ChildWindowFromPoint(point);CDC* m_DC=temp->GetDC();COLORREF m_color1;this->MapWindowPoints(temp,&point,1);m_color1=m_DC->GetPixel(point);int r,g,b;r=GetRValue(m_color1);g=GetGValue(m_color1);b=GetBValue(m_color1);CString str;str.Format("%d",r);CEdit *edit;edit=(CEdit *)GetDlgItem(IDC_RED);edit->SetWindowText(str);edit=(CEdit *)GetDlgIt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年药品养护培训试题及答案
- 2025年汽车制造行业智能汽车安全技术分析报告
- 2025年农业科技行业智慧农业解决方案研究报告及未来发展趋势预测
- 2025年环保行业绿色发展与环境保护技术研究报告及未来发展趋势预测
- 基础日语考研题库及答案
- 感恩的心读平凡的世界有感读后感(6篇)
- 2025年虚拟现实科技行业虚拟现实科技应用研究报告及未来发展趋势预测
- 2025年人工智能行业智能语音识别技术应用研究报告及未来发展趋势预测
- 2025年金融科技行业金融科技与数字化金融服务研究报告及未来发展趋势预测
- 2025年数字化运动行业用户行为与商业模式研究报告及未来发展趋势预测
- 冠心病治疗药物分类及常用治疗药物
- GB/T 31867-2015社会组织信用评价指标
- 【公开课课件】《孟浩然》
- 西安航天动力研究所特种阀门介绍10课件
- 2023年乐东黎族自治县(中小学、幼儿园)教师招聘笔试题库及答案解析
- 廉洁文化手册(最终版)
- 2023年信阳市第六人民医院医护人员招聘笔试题库及答案解析
- 市场法在机器设备价值评估中的应用
- 基于核心素养的深度学习( 讲座)课件
- 真空电镀UV底漆的工艺流程
- DB13T 5387-2021 水库库容曲线修测及特征值复核修正技术导则
评论
0/150
提交评论