Windows编程实验报告Word下载.docx

上传人:b****2 文档编号:4697617 上传时间:2023-05-03 格式:DOCX 页数:15 大小:259.07KB
下载 相关 举报
Windows编程实验报告Word下载.docx_第1页
第1页 / 共15页
Windows编程实验报告Word下载.docx_第2页
第2页 / 共15页
Windows编程实验报告Word下载.docx_第3页
第3页 / 共15页
Windows编程实验报告Word下载.docx_第4页
第4页 / 共15页
Windows编程实验报告Word下载.docx_第5页
第5页 / 共15页
Windows编程实验报告Word下载.docx_第6页
第6页 / 共15页
Windows编程实验报告Word下载.docx_第7页
第7页 / 共15页
Windows编程实验报告Word下载.docx_第8页
第8页 / 共15页
Windows编程实验报告Word下载.docx_第9页
第9页 / 共15页
Windows编程实验报告Word下载.docx_第10页
第10页 / 共15页
Windows编程实验报告Word下载.docx_第11页
第11页 / 共15页
Windows编程实验报告Word下载.docx_第12页
第12页 / 共15页
Windows编程实验报告Word下载.docx_第13页
第13页 / 共15页
Windows编程实验报告Word下载.docx_第14页
第14页 / 共15页
Windows编程实验报告Word下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Windows编程实验报告Word下载.docx

《Windows编程实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《Windows编程实验报告Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

Windows编程实验报告Word下载.docx

创新型

一:

实验目的和要求:

目的:

图形设备接口(GDI),把应用程序的函数调用传递给图形设备驱动程序,由相关驱动程序来执行与硬件相关的函数。

GDI向应用程序提供一个设备无关的编程,同时以设备相关的格式和具体的硬件设备交互。

掌握在MFC中使用GDI进行绘图操作。

要求:

用MFC使用GDI进行绘图操作。

二:

实验原理和步骤

在MFC使用两类对象:

(1)设备上下文对象

(2)GDI对像。

其中,主要用CClientDC和CPen来实现。

主要有以下三个步骤:

(1)定义数据结构类型和变量

(2)初始化绘图信息(3)绘图过程的实现

三:

核心代码

CDlg2:

:

CDlg2(CWnd*pParent/*=NULL*/)

:

CDialog(CDlg2:

IDD,pParent)

{//{{AFX_DATA_INIT(CDlg2)

//NOTE:

theClassWizardwilladdmemberinitializationhere

//}}AFX_DATA_INIT

}

voidCDlg2:

DoDataExchange(CDataExchange*pDX)

{CDialog:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CDlg2)

theClassWizardwilladdDDXandDDVcallshere

//}}AFX_DATA_MAP

}BEGIN_MESSAGE_MAP(CDlg2,CDialog)

//{{AFX_MSG_MAP(CDlg2)

ON_WM_MOUSEMOVE()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

////CDlg2messagehandlers

OnMouseMove(UINTnFlags,CPointpoint)

{//TODO:

Addyourmessagehandlercodehereand/orcalldefault

oldp=point;

CClientDCcdc(this);

//定义客户区设备环境

if(nFlags&

MK_LBUTTON)

{CPenpen;

pen.CreatePen(PS_SOLID,5,RGB(0,255,0));

cdc.SelectObject(&

pen);

cdc.MoveTo(oldp.x,oldp.y);

cdc.LineTo(point.x,point.y);

//绘制线段

}CDialog:

OnMouseMove(nFlags,point);

}

四:

实验结果分析

实验结果:

通过这次的实验,我学会了初步利用WINDOWS提供的图形设备借口GDA将图形显示到显示器上。

本次实验的学习,加深了我对Windows编程中MFC中这两类对象的使用,掌握了新的技能,让我在今后的学习中对Windows中MFC的了解更加深刻。

教师签名:

年月日

使用MFC实现位图

目的:

掌握创建自定义位图控件。

这是允许在每一种按钮状态下呈现不同的位图,这些状态包括:

disabled,normal,mouseover,还有buttonpressed;

除了按钮的图像,让我们的按钮饱含文本,并且根据按钮图片控制文本的对齐方式也很重要。

按钮采用XP样式,还包含了我们定制的一些特性。

要求:

使用MFC实现位图。

1.在内存条中创建位图对象。

2.根据BITMAP结构在内存条中创建位图对象。

3.创建与指定设备上下文兼容的位图的对象。

4.从应用程序资源中加载位图对象,有两种形式,可以根据资源名或资源ID加载。

CDlg3:

OnBnClickedButton1()

{

if(number<

0)

{

MessageBox("

没有上一张了"

);

number=1;

return;

}

CRectwRect;

this->

GetWindowRect(&

wRect);

ScreenToClient(&

CDCmdc,TempDC;

BITMAPBmpInfo;

CBitmapClientBmp,*pOldBmp;

mdc.CreateCompatibleDC(&

cdc);

TempDC.CreateCompatibleDC(&

ClientBmp.CreateCompatibleBitmap(&

cdc,wRect.right,wRect.bottom);

mdc.SelectObject(&

ClientBmp);

TempDC.SelectObject(&

bmp[number]);

bmp[number].GetBitmap(&

BmpInfo);

mdc.TransparentBlt(0,0,300,300,&

TempDC,0,0,BmpInfo.bmWidth,BmpInfo.bmHeight,RGB(0,0,0));

cdc.BitBlt(100,50,300,300,&

mdc,0,0,SRCCOPY);

number--;

ClientBmp.DeleteObject();

mdc.DeleteDC();

voidCDlg3:

OnBnClickedButton2()

if(number>

=4)

没有下一张了"

number=2;

return;

//mdc.BitBlt(0,0,wRect.Width(),wRect.Height(),&

TempDC,0,0,SRCCOPY);

TempDC,0,0,BmpInfo.bmWidth,BmpInfo.bmHeight,RGB(0,0,0));

cdc.BitBlt(100,50,300,300,&

number++;

ClientBmp.DeleteObject();

//TODO:

在此添加控件通知处理程序代码

运行结果

位图是储存在计算机内存当中的一个GDI对象,本次的实验让我学会了在BITMAP结构在内存条中创建位图对象,也让我学会了在MFC中位图控件的使用。

让我对计算机中图像的储存方式和绘制有了新的了解,对计算机中MFC的掌握有了更深层次的了解。

在今后的学习中有了更大的帮助。

使用单行、多行编辑框输入显示文本

1.掌握编辑控件的常用形态、CEdit类常用处理函数以及消息处理。

2.掌握SetTextColor函数的应用。

实现流程

(1)设置“password”属性项,即用户输入时,用“*”显示

(2)设置多行文本编辑框,且带水平和垂直滚动条,同时该编辑框为只读的,即不允许用户输入,这时需要为其设置“MultiLine”,“Horizontalscroll”,“Verticalscroll”,“Read-only”

(3)添加EN_CHAGE消息映射和消息响应函数OnChangeUser()

(4)设置按钮的消息响应函数

WINGDIAPICOLORREFWINAPISetTextColor(__inHDChdc,__inCOLORREFcolor);

hdc是当前设备的句柄。

color是设置当前设备字符输出颜色。

voidCTest43BaseEditBoxDlg:

OnSet()

设置“password”属性项,即用户输入时,用“*”显示设置多行文本编辑框,且带水平和垂直滚动条,同时该编辑框为只读的,即不允许用户输入,这时需要为其设置“MultiLine”,“Horizontalscroll”,“Verticalscroll”,“Read-only”

OnChangeUser()

//TODO:

如果该控件是RICHEDIT控件,则它将不会

//发送该通知,除非重写CDialog:

OnInitDialog()

//函数并调用CRichEditCtrl().SetEventMask(),

//同时将ENM_CHANGE标志“或”运算到掩码中。

UpdateData(true);

//获取编辑框值

m_password=m_user;

UpdateData(false);

//更新编辑控件内容

设置按钮的消息响应函数如下:

//获取编辑控件值

if((m_user.IsEmpty())||(m_password.IsEmpty())) 

//用户名、密码是否为空

 

AfxMessageBox(L"

用户名和密码不能为空!

"

return;

CStringstr;

str=L"

用户名为:

+m_user+L"

密码为:

+m_password+L"

\r\n"

;

//\r\n实现文件的换行

CEdit*pEdit=(CEdit*)GetDlgItem(IDC_USERLIST);

//获取多行编辑控件窗口指针

pEdit->

SetSel(0,-1);

//选择全部文本

intnStart,nEnd;

GetSel(nStart,nEnd);

SetSel(nEnd,nEnd);

//将插入符定位到最后的一个字符

ReplaceSel(str);

//插入需要的文本

m_user=m_password=L"

UpdateData(false);

//更新显示编辑控件的内容

GetDlgItem(IDC_USER)->

SetFocus();

//设置用户名编辑框 

输入的焦点

运行测试

通过本次的实验,我学会了Windows编辑控件中的功能的使用、CEdit类常用处理函数的使用,对以后的学习有了很大的帮助。

在以后的学习中,会更加加深这方面的学习,对以后有很大的帮助。

设置编辑框控件的背景、文本颜色

1.学习美化控件显示。

3.掌握如何制定各种控件的颜色显示。

(1)定义颜色、画刷。

在对话框头文件“ColorEditBoxDlg.h”中,定义画刷对象和颜色结构。

在对话框的初始化函数OnInitDialg()中,进行相应的初始化。

(2)重载对话框OnCtrlColor函数,修改控件的绘制属性。

使用ClassWizard为对话框添加WM_CTLCOLOR消息映射和消息响应函数OnCtlColor,实现编辑框的颜色设置。

CColorEditBoxDlg:

CColorEditBoxDlg(CWnd*pParent/*=NULL*/)

CDialog(CColorEditBoxDlg:

//{{AFX_DATA_INIT(CColorEditBoxDlg)

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

m_hIcon=AfxGetApp()->

LoadIcon(IDR_MAINFRAME);

voidCColorEditBoxDlg:

CDialog:

//{{AFX_DATA_MAP(CColorEditBoxDlg)

BOOLCColorEditBoxDlg:

OnInitDialog();

//Add"

About..."

menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&

0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<

0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->

AppendMenu(MF_SEPARATOR);

AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'

smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);

//Setbigicon

SetIcon(m_hIcon,FALSE);

//Setsmallicon

Addextrainitializationhere

m_redcolor=RGB(255,0,0);

//红色

m_bluecolor=RGB(0,0,255);

//蓝色

m_textcolor=RGB(255,255,255);

//白色文本

m_redbrush.CreateSolidBrush(m_redcolor);

//红色画刷

m_bluebrush.CreateSolidBrush(m_bluecolor);

//蓝色画刷

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

五、心得分析

本次的实验,我初步学习了Windows中美化控件的使用,初步学会了SetTextColor函数的应用,对编辑函数的使用。

让我对Windows中编辑控件有了更深刻的了解,对未来的学习有很大的帮助。

心____________________________________________________________________________________________________________________________教师签名:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2