当前位置:文档之家› 如何实现控件随对话框大小变化而自动调整大小和位置

如何实现控件随对话框大小变化而自动调整大小和位置

如何实现控件随对话框大小变化而自动调整大小和位置
如何实现控件随对话框大小变化而自动调整大小和位置

如何实现控件随对话框大小变化而自动调整大小和位置

VC++ 2009-12-28 20:27:42 阅读461 评论0字号:大中小订阅

1. 处理对话框的WM_SIZE,然后用MoveWindow或者SetWindowPos来把对话框上面的控件重新调整新位置和大小。

2. 基本的做法就是响应WM_SIZE消息,并按照窗口大小比例来调整控件的位置和大小,控件的大小最好设置成窗口的百分之几,这样的话,就可以根据窗口的大小随时调整了。

3. 每次OnSize 即可获得一个CRect,然后根据这个CRect来确定这些控件的位置和大小,使用函数MoveWindow 或SetWindowpos实现。

4.

1)通过下面两个函数获取的是显示屏幕的大小【屏幕的分辨率】(不包括任务栏等区域):

int nFullWidth=GetSystemMetrics( SM_CXFULLSCREEN ); //屏幕宽度

int nFullHeight=GetSystemMetrics( SM_CYFULLSCREEN ); //屏幕高度

2)这两个函数获取的是真正屏幕的大小【屏幕的分辨率】(包括任务栏等区域):

int cx = GetSystemMetrics( SM_CXSCREEN );

int cy = GetSystemMetrics( SM_CYSCREEN );

如:用前两个函数获取的大小可能是1024*687 ,而用下边两个获取的就是1024*768。

5. 在OnSize() 中调用:GetClientRect() 和GetWindowRect() 函数可获取窗口大小,但需注意得到的是设备坐标,如果需要画图什么的还需要转换成逻辑坐标。

6. 字体大小随窗口变化而自动变化,比如说始终使字的高度始终占窗口的1/3。使用:

1). 在Creat中将nHeight设成窗口长度或者宽度的一定比值就行了(最好在onsize函数中设置);

2). 使用WM_FONTCHANGE 消息。

***************************************************************************************************** **************************************

转载自:

https://www.doczj.com/doc/0c7284113.html,/u/20090314/16/835a3bbb-2d13-4842-922a-8a07cde1a055.html (作者:Fireway2008)

总结步骤:

1.创建一个CWnd* 的数组,在初始化时取的各个控件的句柄,存在这个数组里面

2.处理WM_SIZE事件,可以得到新变化后的窗口和最初窗口的变化比例kx,ky

3.对数组中的每一个控件,计算新位置

4.MoveWindow移动到新位置

对话框或视类的大小调后,控件的大小和位置没有变化,界面看起来会很不爽。控件是从CWnd派生的,但不能使用SetWindowPos()或OnSize()或OnSizing()来改变其大小,应在父窗口的WM_SIZE消息中使用MoveWindow()来进行调整。===========>>>>>>>

根据按钮控件ID不同进行调整,响应WM_SIZE

1. 先声明一个成员

CRect m_rect; //用于保存对话框大小变化前的大小

2. 初始化的时候获取对话框区域

BOOL CTestDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

//获取对话框创建时的大小:

GetClientRect(&m_rect);

……

}

3. 自定义一个函数,根据控件ID进行处理

void CTestDlg::ChangeSize(UINT nID, int x, int y)

{

CWnd *pWnd;

pWnd = GetDlgItem(nID); //获取控件句柄

if(pWnd) //判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建

{

CRect rect; //获取控件变化前大小

pWnd->GetWindowRect(&rect);

ScreenToClient(&rect); //将控件大小转换为在对话框中的区域坐标

// 其中x / m_rect.Width() 为对话框在横向的变化比例;y / m_rect.Height()为对话框在纵向的变化比例

rect.left = rect.left * x / m_rect.Width(); // 调整控件大小

rect.right = rect.right * x / m_rect.Width();

rect.top = rect.top * y / m_rect.Height();

rect.bottom = rect.bottom * y / m_rect.Height();

pWnd->MoveWindow(rect); //设置控件大小

}

}

void CTestDlg::OnSize(UINT nType, int cx, int cy)

{

CDialog::OnSize(nType, cx, cy);

//进行条件判断,不然窗口最小化后再恢复就产生BUG(整数除以0),即:最小化的时候m_rect的各个量是“0”,所以在窗口还原的时候就出现了除0的异常。

if(nType != SIZE_MINIMIZED )

{

ChangeSize(IDC_BUTTON1, cx, cy);

ChangeSize(IDC_BUTTON2, cx, cy);

ChangeSize(IDC_BUTTON3, cx, cy);

ChangeSize(IDC_BUTTON4, cx, cy);

GetClientRect(&m_rect); // 将变化后的对话框大小设为旧大小,否则无法还原控件原始位置

}

}

***************************************************************************************************** **************************************

转载自:https://www.doczj.com/doc/0c7284113.html,/GuiAndWindows/GuiAndWindows00040.html

VC对话框全屏显示及相应控件位置改变

一、简单对话框全屏显示方法

在OnInitDialog()中任意加入:

1、ModifyStyle(WS_CAPTION,0,0); //如果不想去掉标题栏,去掉该句。

SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);

2、ShowWindow(SW_SHOWMAXIMIZED);

二、复杂一点的对话框全屏显示方法,随屏幕的分辩率而调节

void CMainFrame::OnFullScreen()

{

GetWindowPlacement(&m_OldWndPlacement);

CRect WindowRect;

GetWindowRect(&WindowRect);

CRect ClientRect;

RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery,

&ClientRect);

ClientToScreen(&ClientRect);

//获取屏幕的分辨率

int nFullWidth=GetSystemMetrics(SM_CXSCREEN);

int nFullHeight=GetSystemMetrics(SM_CYSCREEN);

//将除控制条外的客户区全屏显示到从(0,0)到(nFullWidth, nFullHeight)区域

//将(0,0)和(nFullWidth, nFullHeight)两个点外扩充原窗口和除控制条之外

//客户区位置间的差值, 就得到全屏显示的窗口位置

m_FullScreenRect.left=WindowRect.left-ClientRect.left;

m_FullScreenRect.top=WindowRect.top-ClientRect.top;

m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth;

m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeigh t;

m_bFullScreen=TRUE; //设置全屏显示标志为TRUE

//进入全屏显示状态

WINDOWPLACEMENT wndpl;

wndpl.length=sizeof(WINDOWPLACEMENT);

wndpl.flags=0;

wndpl.showCmd=SW_SHOWNORMAL;

wndpl.rcNormalPosition=m_FullScreenRect;

SetWindowPlacement(&wndpl);

}

三、对话框全屏及按钮控件移到相应位置

void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point)

{

int cx=::GetSystemMetrics(SM_CXSCREEN);

int cy=::GetSystemMetrics(SM_CYSCREEN);

CRect rtClient,rtBtn;

CWnd *pWnd=GetDlgItem(IDC_BUTTON);

GetClientRect(&rtClient); //获得对话框客户区屏幕坐标

ClientToScreen(&rtClient); //映射为屏幕坐标

pWnd->GetWindowRect(&rtBtn); //获得button屏幕坐标

int lx=rtBtn.Width(); //button长度

int ly=rtBtn.Height(); //button高度

int dx=rtClient.right-rtBtn.right; //离右边框的距离

int dy=rtClient.bottom-rtBtn.bottom; //离底边框的距离

MoveWindow(CRect(0,0,cx,cy)); //移动窗口

pWnd->MoveWindow(CRect(cx-dx-lx,cy-ly-dy,cx-dx,cy-dy)); //移动button

CDialog::OnLButtonDown(nFlags, point);

}

四、设计状态下指定对话框以全屏显示

1、手工把它拽成比如1024×768,然后Alt+V U

2、在*.rc文件中修改,但是单位不一样。

五、用MoveWindow或SetWindowPos全屏对话框

1. 首先计算出客户区的大小GetClientRect();

2. 再计算出整个窗口的大小GetWindowRect();

3. 然后再得到当前屏幕的大小GetSystemMetrics();

4. 最后根据这三个数据进行换算,得到当客户区为屏幕大小时窗口的位置和大小;

5. 计算完成后调用MoveWindow就可以了。

第六章 对话框控件

学习目标: ?掌握CommonDialog。 ?掌握文件操作相关的对话框。 ?理解打印对话框。 6.1对话框: 对话框是一种用户界面接口,用于同用户进行交互,完成一些特定的任务,简单的对话框有对用户操作进行提示的对话框,对重要操作要求用户进行决定的交互对话框等。 这类任务能被独立出来,作为通用的交互处理过程。这些能被独立出来作为通用交互过程的任务常见如下一些: (1)文件选取。 (2)保存设置。 (3)路径选取。 (4)字体选取。 (5)颜色选取。 (6)打印设置。 (7)打印预览框。 在.NET中这些组件是在https://www.doczj.com/doc/0c7284113.html,monDialog的基础上发展而来。

6.1.1Common pialog: CommonDialog是.NET中对话框组件的基础,它是System.Windows.Forms命名空间下的一个抽象类,在程序中不能直接使用。 CommonDialog公开了2个方法和一个属性,即:ShowDialog()/ShowDialog(IWin32Window)方法和Reset()方法以及Tag属性。 ShowDialog是用于显示对话框。ShowDialog()有一个重载形式:ShowDialog(IWin32Window),IWin32Window在这里指一个窗口句柄,在调用中,这个参数应该被赋值成要显示的对话框的父窗体。 注意:句柄是Window中的一个常用词语,可以把它理解为一个标识符号,只是这个标识符号是一个数字。相应的窗口句柄就是窗口的标标识符。 Reset方法: 使用过程中可能改变初始值,当需要让所有的初值回到原来的状态时,调用Reset能达到目的。 Tag属性: Tag没有具体含义,它可以让用户在对话框控件中存储、维护自己的数据。这个数据由用户自己的代码解释。 对话框的返回值(ShowDialog的返回值): 对话框通过调用ShowDialog()调用后,返回一个类型为DialogResult 值,其中DialogResult.OK指出用户成功完成了操作,成功选取了文

MFC对话框程序中的各组件常用方法

MFC对话框程序中的各组件常用方法: Static Text: 将ID号改成唯一的一个,如:IDC_XX,然后进一次类向导点确定产生这个ID,之后更改Caption属性: GetDlgItem(IDC_XX)->SetWindowText(L"dsgdhfgdffd"); 设置字体: CFont *pFont = new CFont; pFont->CreatePointFont(120,_T("华文行楷")); GetDlgItem(IDC_XX)->SetFont(pFont); Edit Control: 设置文本: SetDlgItemText(IDC_XX,L"iuewurebfdjf"); 获取所有输入: 建立类向导创建一个成员变量(假设是shuru1,shuru2……)类型选value,变量类型任选。 UpdateData(true); GetDlgItem(IDC_XX)->SetWindowText(shuru1); 第一句更新所有建立了变量的对话框组件,获取输入的值。第二句将前面的IDC_XX的静态文本内容改为shuru1输入的内容。 若类型选用control: 1.设置只读属性: shuru1.SetReadOnly(true); 2.判断edit中光标状态并得到选中内容(richedit同样适用) int nStart, nEnd; CString strTemp; shuru1.GetSel(nStart, nEnd); if(nStart == nEnd) { strTemp.Format(_T(" 光标在%d" ), nStart); AfxMessageBox(strTemp); } else { //得到edit选中的内容 shuru1.GetWindowText(strTemp); strTemp = strTemp.Mid(nStart,nEnd-nStart); AfxMessageBox(strTemp); } 其中nStart和nEnd分别表示光标的起始和终止位置,从0开始。strTemp.Format 方法用于格式化字符串。AfxMessageBox(strTemp)显示一个提示对话框,其内容是字符串strTemp。 strTemp = strTemp.Mid(nStart,nEnd-nStart)返回一个被截取的字符串,从nStart开始,长度为nEnd-nStart。如果nStart == nEnd说明没有选择文本。 注:SetSel(0,-1)表示全选;SetSel(-1,i)表示删除所选。

C#在主窗体Panel中添加新的窗体

在主窗体Panel中添加新的窗体(C#,winform开发) 本文的要写的是如何将窗体(Form)添加到panel中。 为什么要这样呢? 1)如果用tab控件,整个窗体的控件太多,不易于我们编程; 2)可以更灵活的控制窗体的布局。 我想你一定看过这样的配制信息窗体吧(迅雷的配置页面)。 在你的项目开发中,是否也希望做出做出这种效果呢?应该如何设置呢?单击窗体的左边的按钮,窗体右边的内容会根据单击的按钮变化. 开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件.然后根据单击的按钮将子窗体显示在Panel控件上.在按钮的单击事件中加入下面的代码:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); this.panel1.Controls.Add(child); child.Show(); }运行程序显示“不能将顶级控件添加到一个控件上”出现“不能将顶级控件添加到一个控件上”错误怎么处理?在代码中加入 child.TopLevel = false;OK.新问题又出现了.我们不希望子窗体的标题和边筐也显示在父窗体中,再添加如下代码.

child.FormBorderStyle = FormBorderStyle.None;现在的感觉是不是舒服多了.但是还隐藏着一个新问题.怎样动态设置子窗体的Size、Location等呢?我希望在调整父窗体大小时,Panel1中子窗体的大小也跟随动态自动调整 .需要加入下面的事件 private void panel1_Resize(object sender,System.EventArgs e) { try { this.child.ClientSize=new System.Drawing.Size(panel1.Size.Width,pa nel1.Size.Height); } catch(System.Exception Er) { MessageBox.Show(Er.ToString()); } }编译无错,执行时(Error:未将对象引用设置到对象的实例) 但连续点了4个一样的错误提示确认后,程序却可以正常执行,并且form1调整窗体大小form2也可以随之响应了。 此计不行,又生一计.我们可以把子窗体当成一个控件,设置Dock属性不就行了吗?赶快测试一下:private void button1_Click(object sender, EventArgs e) {ChildForm child = new ChildForm(); child.TopLevel = false; child.Dock = System.Windows.Forms.DockStyle.Fill; child.FormBorderStyle = FormBorderStyle.None; //child.Parent = this.panel1; this.panel1.Controls.Add(child); child.Show(); }

使用窗体控件

第2章使用窗体控件 课堂练习:为控件创建事件处理程序 5)传递给这个事件处理程序的第二个参数(e)的目的是什么? 答:参数e包含事件数据。它是一个EventArgs 对象(实际不包含事件数据的基类),或者是一个派生类(像MouseEventArgs)的实例。要查看派生类的完整列表,请在Visual Studio .NET帮助文档中使用短语“EventArgs 类”进行查找,然后点击链接转到“派生类”。 ●为Click 事件创建一个事件处理程序。 3)上面的双击动作为什么创建了一个Click 事件处理程序? 答:当在设计视图中双击一个控件时,IDE会自动为默认事件创建一个事件处理程序。课堂练习:创建和使用ToolBar控件 8)为什么不能向ToolBar 按钮添加图像呢? 答:ToolBar 控件将ImageList 控件作为图像源。使用ToolBar 控件的ImageList 属性指定Toolbar 将从哪个ImageList 控件获取图像。 13)运行应用程序。单击工具栏按钮时有事情发生吗?必须处理什么事件以响应单击ToolBar按钮? 答:ToolBar 的ButtonClick事件用来处理ToolBar按钮的单击。ToolBarButtonClickEventArgs 用来确定单击了哪个按钮。 课堂练习:在运行时添加和移除控件 ●添加新控件 6)为什么decimalCheckBox 出现在GroupBox1控件的左上角? 答:控件位置属性的默认坐标X和Y的值均为零。 课堂练习:在运行时更新菜单 ●使用另一个MainMenu 9)什么时候能在一个应用程序中使用多个MainMenu 控件? 答:在应用程序的上下文改变或者应用程序有多种状态时,使用(显示)多个MainMenu 对象会很有帮助。 ●将一个ContextMenu 分配给一个控件。 5)如何找出哪个控件与ContextMenu 有关联? 答:ContextMenu.SourceControl 属性获取显示快捷方式菜单的控件。 ●找出与ContextMenu关联的控件

1C#程序设计第十章课后习题答案

单选: (1).NET中的大多数控件都派生于(C)类 A.Class B.From C.Control D.Object (2)在以下控件中,可用于输入数据的是(B) https://www.doczj.com/doc/0c7284113.html,bel B.TextBox C.Button D.PictureBox (3)在以下控件中,可实现多项选择的是(A) A.CheckBox B.RadioButton https://www.doczj.com/doc/0c7284113.html,boBox D.NumericUpDown (4)不属于容器控件的是(C) A.GroupBox B.Panel C.MenuStrip D.TapControl (5)(B)控件组合了TextBox控件和ListBox控件的功能。 https://www.doczj.com/doc/0c7284113.html,bel https://www.doczj.com/doc/0c7284113.html,boBox C.ProgressBar D.PictureBox (6)让控件不可以使用的属性是以下哪一个?B A.AllowDrop B.Enabled C.Bounds D.Visible (7)让控件不可显示的属性是以下哪一个?D A.AllowDrop B.Enabled C.Bounds D.Visible (8)不能用于设置控件布局位置的属性是(C) A.Left B.Top C.Size D.Location (9)可用来设置文字颜色的属性是(B) A.BackColor B.ForeColor C.Text D.Parent (10)TextBox控件的(B)属性将输入的字符代替显示为指定的密码字符。 A.Text B.PasswordChar C.TextAlign D.Multiline (11)所有控件都一定具有的属性是(D) A.Text B.BackColor C.Items https://www.doczj.com/doc/0c7284113.html, (12)当用户鼠标左键单击窗体或控件系统将触发(D)事件 A.Activated B.Load C.DoubleClick D.Click (13)用户修改了文本框中的内容时,系统将触发(A)事件。 A.xtChanged B.CheckedChanfed C.SelectedIndexChanged D.SizeChanged (14)在列表框或组合框中,当用户重新选择另一个选项时,系统将触发(C)事件。A.TextChanged B.CheckedChanged C.SelectedIndexChanged D.SizeChanged (15)有关模态对话框说法错误的是(A) A.模态对话框允许用户单击该对话框之外的区域 B.模态对话框通常没有最大化、最小化按钮 C.模态对话框使用ShowDialog方法显示 D.模态对话框不能使用鼠标改变窗体大小 (16)当复选框能够显示2种状态时,可通过它的(C)属性来设置或返回复选框的状态。 A.Enabled B.Visible C.Checked D.Text (17)要使用ListBox控件多选的情况下,可使用它的(A)属性设置为true。 A.SelectionMode B.SelectedItem C.SelectedValue D.ImeMode (18)在允许ListBox控件多选的情况下,可以使用它的(B)属性值来访问已选中的选项。 A.SelectionMode B.SelectedItem C.SelectedValue D.SelectedIndex (19)要使PictureBox中显示的图片刚好填满整个图片框,应把它的(D)属性值设为PictureBoxSizeMode.StretchImage。 A.Enabled B.Visible C.ImageLocation D.SizeMode (20)Timer控件的(A)属性用来是指定时器Tick事件发生的时间间隔

向用户窗体中添加控件

若要向用户窗体中添加控件,请在“工具箱”中查找要添加的控件,将该控件拖到窗体上,然后拖动控件上的调整柄,直至控件的外边框成为所需的大小和形状。 注意如果将控件(或若干“成组”的控件)从窗体拖回到“工具箱”,将创建该控件的一个模板,该模板可被重新使用。对于实现应用程序的标准界面,这是非常有用的功能。 向窗体添加了控件之后,可用 Visual Basic 编辑器中“格式”菜单上的命令调整控件的对齐方式和间距。 上页:Excel VBA教程:向文档中添加控件下页:Excel VBA教程:应用程序对象事件 Excel VBA Excel VBA教程:应用程序对象事件Excel VBA教程:图表对象事件 Excel VBA教程:控件和对话框事件Excel VBA教程:在某一 Microsoft Office 应用程序中控制其他 Microsoft Office 应 用程序 Excel VBA教程:创建自定义对话框Excel VBA教程:新建工作簿 Excel VBA教程:创建“用户窗体”Excel VBA教程:显示自定义对话框 Excel VBA教程:获取有关 Macintosh 关键 字的帮助 Excel VBA教程:在单元格区域中循环Excel VBA教程:如何引用单元格和区域Excel VBA教程:初始化控件属性Excel VBA教程:打开工作簿Excel VBA教程:QueryTable对象事件 Excel VBA教程:引用工作表上的所有单元格Excel VBA教程:用 A1 样式记号引用单元格 和单元格区域 Excel VBA教程:用编号引用单元格Excel VBA教程:相对于其他单元格来引用单 元格 Excel VBA教程:用 Range对象引用单元格Excel VBA教程:用快捷记号引用单元格

【精品报告】常用中后台交互设计控件使用场景与规范总结

常用中后台交互设计控件使用场景与规范总结 最近刚完成平台安畅云 2.0 的改版设计,平台模块很多,经常存在很多类似的页面和组件,若不制定统一的规范和控件,则会导致很多重复的工作,大大降低产品的设计效率; 同时,平台的一致性也得不到保障。 所以,我们视觉、交互、前端的小伙伴们针对我们踩过的坑,大家认真总结和提炼出一个 符合公司定位的设计规范,统一公司项目的前端 UI 设计,规避不必要的设计差异和实现 成本,实现设计和前端资源的效率最大化。 此设计规范主要分享了中后台常用设计组件的定义、组成、使用场景及注意事项。 字体 概述 字体是界面设计中最基本的构成元素之一,用户通过文字来理解内容和完成任务,合适的 字体将大大提升用户的阅读体验及工作效率。在安畅云项目的字体使用中,为了使页面的 视觉层次更加清晰,我们从以下三方面来使平台的字体符合易阅读和美观的要求。 合理的使用不同的字重、字号和颜色来强调界面中需要突出的信息; 尽量使用单种字体,使用多种字体会让界面看起来零散和杂乱无章; 遵循 WCAG 2.0 标准(标准详情见 https://https://www.doczj.com/doc/0c7284113.html,/Translations/WCAG20- zh/#visual-audio-contrast),字体在使用时与背景颜色的对比值满足无障碍阅读的最 低标准。 字体使用建议 中文字体优先级:PingFang SC、Hiragino Sans GB 、Microsoft YaHei(平台使用字体)英文字体优先级:Helvetica Neue、Helvetica、Arial(平台使用字体)

字号使用建议 行高使用建议 行高也是影响用户阅读体验的重要因素之一,我们查阅资料得知西文的基本行高通常是字号的 1.2em 左右,而中文因为字符复杂,所以中文行高需要更大。现在公认1.5em 至1.8em 之间会有一个比较好的视觉阅读效果。 安畅云项目行高计算公式:行高值=字号 x 1.5,例如:12 号字体的行高为 18px,14 号字体的行高为 21px。

4 对话框及常用控件 (第四章 对话框和常用控件)

1.什么是对话框?它分为哪两类?这两类对话框有哪些不同? 答:对话框是一种特殊的窗口,主要功能是输出信息和接收用户的输入。对话框分为有模式对话框和无模式对话框。当一个有模式对话框打开时,用户只能与该对话框进行交互,而其他用户界面对象收不到输入信息。而无模式对话框打开时,用户可以同时打开其他窗口对象,操作完毕后,又可用鼠标或其他方式激活该窗口。 2.什么是对话框模板、对话框资源和对话框类? 答:对话框模板是一个描述对话框的内存结构,用于添加控件及其布局。对话框资源指快捷键、对话框、菜单、字符串、工具栏按钮、图表、版本信息等。对话框类用于实现对话框功能。 3.对一个对话框编程一般经过几个步骤? 答:1. 在资源编辑器中画对话框,添加控件,设定控件位置、大小、ID和其它属性; 2. 定义对话框回调函数,添加控件的事件处理函数; 3. 注册对话框函数 4、什么是控件?根据控件的性质可以将控件分为几类? 答:在Windows中所用的按钮控件是用来实现一种开与关的输入。 常见按钮类型:按键按钮、单选按钮、复选框按钮。 5.向对话框添加一个常用控件的方法有哪些?这些方法是否使用于ActiveX控件? 答:1、先点击控件,然后在对话框上单击, 2、先点击控件,然后在对话框上点住不放,画出像要的大小。 否。 6.什么是DDV/DDX技术?如何使用这种技术? 答:DDX(对话框数据交换)机制用来初始化对话框中的数据,并向应用程序返回数据,它使得用户向对话框加载对象数据和当对话框关闭时恢复其中的数据这两个过程自动化。 DDV(对话框数据验证有效性)机制用于将数据返回成员变量之前将数据的长度和范围有效化。 7.什么是空间的通知消息?它在编程中起哪些作用? 答:控件消息由按钮(BN_)、编辑框(EN_)、组合框(CBN_)和列表框(LBN_)等产生。控件通过向父窗口发送控件通知消息来表明发生了某种事件。

组态王6.5使用手册 第14章 控件(共101页 34~73页)

第十四章控件 14.2.8 超级文本显示控件 组态王提供一个超级文本显示控件,用于显示RTF格式或TXT格式的文本文件,而且也可在超级文本显示控件中输入文本字符串,然后将其保存成指定的文件,调入RTF、TXT格式的文件和保存文件通过超级文本显示控件函数来完成。 14.2.8.1 如何创建超级文本显示控件 在画面开发系统的工具箱中选择“插入控件”按钮,或选择菜单“编辑/插入控件”命令,在弹出的如图14.2所示的“创建控件”对话框中,在种类列表中选择“超级文本显示”,在右侧的内容中选择“显示框”图标,单击对话框上的“创建”按钮,或直接双击“显示框”图标,关闭对话框。此时鼠标变成小“十” 字形,在画面上需要插入控件的地方按下鼠标左键,拖动鼠标,画面上出现一个矩形框,表示创建后控件界面的大小。松开鼠标左键,控件在画面上显示出来。 如图14.32所示。控件周围有带箭头的小矩形框,鼠标挪到小矩形框上,鼠标箭头变为方向箭头时,按下鼠标左键并拖动,可以改变控件的大小。当鼠标在控件上变为双“十”字型时,按下鼠标左键并拖动,可以改变控件的位置。

图14.32 创建后的超级文本显示框控件 14.2.8.2 如何定义超级文本显示控件的属性 控件创建完成后,需要定义空间的属性。用鼠标双击控件,弹出超级文本显示框控件属性对话框,如图14.33所示。 图14.33 超级文本显示框控件属性对话框 超级文本显示框控件属性: ◆控件名称:定义控件的名称,一个显示框控件对应一个控件名称, 而且是唯一的,不能重复命名,控件的命名应该符合组态王的命名 规则。如“Richtxt1”。 ◆访问权限:定义控件的安全级别——访问权限,范围为1~999。定

从零开始学VC系列教程 二.对话框及常用控件实验

从零开始学VC系列教程二. 对话框及常用控件实验 恭喜你,进入VC学习的第二节了.这一节是人机交互的基础.所谓人机交互,说通俗点就是与机器对话.然而我们现在的技术还不能像科幻片里一样与机器人直接说话就行了.所以,我们的操作意图还得通过文本输入,命令按钮等等来实现. 本节内容:学会对话框调用及一些常用控件的使用方法. 学习目的:学习人机交互,为软件开发提供界面基础. 1.新建工程.参考第一节的方法新建一个工程,名字为Eg02完成后如下图 细心的朋友一定会发现.新建的工程里还有一个对话框,ID名是IDD_ABOUTBOX这个是做什么用的呢?我们用到的软件都会有一个版权声明.通过第一章的学习,大家应该知道怎么观看这个IDD_ABOUTBOX对话框了吧.没错!双击IDD_ABOUTBOX就可以了.我们会看到如下的一个对话框 这就是我们这个程序的关于对话框,一般用于版权声明及版本号标识.大家看到的这个对话框里有两个静态文本框和一个图像框(Picture),静态文本框我们在前一节已经介绍过了.大家可以修改一下版权所有这一行,填什么都可以,签个大名也行.完成以后你一定想看看效果,这个对话框怎么打开呢?其实VC已经为我们做好了.先按F7编译,然后按F5运行.大家可以看到

程序运行了. 单击应用程序图标,就会出现一个菜单,选最后一个[关于Eg02],关于对话框就弹出来了. 当然,这是系统为我们做好的.自己怎么在程序中调用这个对话框呢?为了演示,首先参考第一节的内容添加一个按钮,然后把按钮的ID改为IDC_BTN_ABOUTME,把标题,也就是Caption 改为[关于].最终效果如下 下面我们为按钮添加代码.相信大家一定还记得怎么进入代码吧..对了,双击[关于]按钮,在弹出的对话框中点[确定]就可以了.为了让大家更好的理解下面的操作,我们先要解释一下关于对话框的类.VC向导会为关于对话框建立一个类,大家看看下面的图

《在窗体中添加控件》

说课教案 课题:在窗体中添加控件 教材:中等职业学校计算机技能型紧缺人才培养规划教材—— 《中文Access2003实用教程》李耀洲等主编说课教师:杭州市电子信息职业学校黄水萍 一.教材分析 1.教材的地位与作用 “在窗体中添加控件”是李耀洲等主编的中职计算机技能型紧缺人才培养规划教材《中文Access2003实用教程》第五章的核心内容。在前面的教学过程中学生已经掌握了设计、使用和编辑“表”对象,能够根据需要设计出合理的“查询”对象,本章的“窗体”对象起着联系数据库和用户的桥梁作用,因此学生能够设计出既美观又方便用户操作的窗体对象将对以后他们的数据库软件设计之路打好扎实的基础。 2.教材的处理 教材中只是一味地为了介绍某一控件而介绍它的使用方法,并没有给学生一个直观的能激发学生学习兴趣的实例来说明,对于我们中职的学生,学生认知水平较低,推理能力较弱,另外对于他们来说更重要的是培养他们的知识应用能力和技能,因此我把在窗体中添加控件自行设计了两个大项目来进行学习,第一个项目中包含“标签”、“文本框”、“绑定对象框”、“选项组”这些控件的使用方法,第二个项目主要介绍了“选项卡控件”和“命令按钮”控件,同时设计了一个综合练习,从而让学生能够对窗体中的常用控件有一个全面的认识。现在我正针对第二个项目的学习进行说课。 3.教学目标的确定 在中职教育培养目标指导下,结合教学大纲和学生的特点,我确定本内容的教学目标如下。 ①知识目标:进一步掌握标签、文本框、绑定对象框和组合框的使用方法;理解使用选项卡和命令按钮的目的;基本掌握选项卡和命令按钮的设计方法。 ②技能目标:培养学生的观察能力;培养学生自主学习、协作学习及分析问题、解决问题的能力;培养学生对知识的应用能力。 ③情感目标:由于学生众多,层次差异较大,教师培养的小助手不但可以协助教师更有

对话框和按钮控件实验报告

实验(实习)报告 实验(实习)名称对话框和按钮控件日期 5.15 得分指导教师 院计算机与软件学院专业计算机科学与技术年级班次姓名学号 实验内容: 设计一个对话框,用于问卷调查,在教材【例Ex_reserch】基础上针对“上网”话题在提出一个问题:“你每天上网的平均时间”,该问题的备选答案是“<1小时”、“<2小时”、“<3小时”和“>3小时”,如图T9.1所示。当回答问题后,单击“确定”按钮,弹出一个消息对话框,显示用户选择的内容。 实验步骤: 1.创建工作文件夹 2.设计“上网问卷调查”对话框 (1)创建一个默认的基于对话框的应用Ex_Research。 (2)调整对话框的大小(宽度不变),将“确定”和“取消”按钮移至对话框的下方,参照图控件的布局,添加一个静态文本框,标题为“你每天上网的平均时间:”,保留默认的标识符。 (3)添加四个单选按钮控件,在其属性对话框中,分别将其标题设置为“<1小时”、“<2小时”、“<3小时”和“>3小时”,标识符分别设置为IDC_TIME_L1、IDC_TIMEL2、IDC_TIME_L3和IDT_TIME_M3。 (4)选中第1 个单选按钮IDC_TIME_L1的Group属性选项。 (5)添加一个静态图片控件,在其属性对话框中将其类型属性为“Frame(框架)”,颜色属性选为“Etched(蚀刻)”。 3.修改代码 (1)在CEx_ResearchDlg::OnInitDialog函数中添加下列代码: CheckRadioButton(IDC_TIME_L1、IDC_TIME_M3、IDC_TIME_L1); (2)在CEx_ReaserchDlg::OnOk函数中添加下列代码: //获得第四个问题的用户选择 Str=str+”\n你每天平均上网的时间:\n”; nID=GetCheckedRadioButton(IDC_TIME_L1、IDC_TIME_M3); GetDlgItemText(nID,strCtrl);//获得指定控件的标题文本 Str=str+strCtrl; 4.编译运行并测试 编译并运行后,显示“上网调查问卷”对话框,当回答问题后,单击“确定”按钮,出现相应的西欧系对话框,显示用户选择的内容。

对话框常用控件实验报告

对话框常用控件实验报告 班级:电气工程与自动化2班 学号:06120902 姓名: 嘎日玛盖

Ⅰ内容和要求: 一,对话框常用控件实验要求: 1 控件的消息映像 2控件与关联变量的数据处理 二,对话框常用控件实验步骤: 1步骤 2效果 3执行效果截图 4问题的解决方法 三,对话框常用控件实验的内容: 1编辑框 2静态文本 3单选框 4复选框 Ⅱ实验步骤 1.新建一个工程,选择MFC AppWizard(exe)的项目类型,输入项目名:heiha,结果如图1: 选择单文檔类型。 2.新建一个菜单“正式开始工作”,在其下面建立新选项“提交档案”,设其ID为ID_MENU_TIJIAO,如图2:

钮、复选按钮和普通按钮: m_NAME、m_XINGBIE和m_AIHAO。

5.利用MFC ClassWIzard在Cfirst类中添加IDOK按钮的BN_CLICKED消息映像,并添加下列代码。 UpdateData(true); m_NAME=m_NEIRONG; UINT AID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2); GetDlgItemText(AID,m_XINGBIE); CString str,strCtrl; UINT nCheckIDs[7]={IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_CHECK4,IDC_CHEC K5,IDC_CHECK6,IDC_CHECK7}; CButton *p; for(int i=0;i<7;i++) { p=(CButton*)GetDlgItem(nCheckIDs[i]); if(p->GetCheck()){ GetDlgItemText(nCheckIDs[i],strCtrl); str=str+strCtrl; str=str+" ";} } m_AIHAO=str; UpdateData(false); 6. 利用MFC ClassWIzard在CMainFrame类中添加对应新建菜单按钮“提交档案”选项ID 的COMMEND消息映像,并添加下列代码。 Cfirst da; da.DoModal(); Ⅲ实验结果 最终执行效果图为如下:

MFC 对话框和常用教程

第五章对话框和常用控件 对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程序运行过程中,对话框可用于扑捉用户的输入信息或数据。对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。控件是在系统内部定义的用于和用户交互的基本单元。 一、对话框的使用 Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用 ClassWizard为对话框从CDialog基类中派生一个类,MFC的CDialog类封装了用于对话框的显示、关闭等操作的许多功能函数,例如:DoModal函数用来显示模式对话框并返回用户操作的结果。 1、模式对话框(为186附加举例页) 所谓模式对话框是指,当对话被弹出时,用户必须在对话框中进行相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行。平常我们所见到的对话框大多是模式对话框。 例:模式对话框(通过菜单命令弹出) 1)建一个单文档(SDI)应用程序 2)创建对话框模板 Insert→Resource→选中Dialog→单击New 拖过一个静态文本,鼠标对准它,按右键点properties改标题为“新建模式对话框”。 3)鼠标右键对准对话框的任何位置单击,选择properties选项,设置ID为IDD_MYDIALOG 4)给对话框创建类 双击新建对话框的任何位置,单击OK,写类名为“CMyDlg”,保 证”CDialog”作为该类的基类。 5)创建菜单命令: a)打开资源编辑器的菜单项Menu b)双击IDR_MAINFRAME c)双击右边空白菜单,点开pop_up(让它是空白),在名字处写”弹出对话框(&A)”,ID 处写ID_PUPDIALOG 6)将菜单命令连接到主框架程序中,完成ID_PUPDIALOG的消息映射:View→ClassWizard→保证Class name里是CMainFrame,在ObjectIDs 里找到ID_PUPDIALOG点黑→Messages里(右边)点COMMAND建立主框架对象方法并加代码: void CMainFrame::OnPupdialog() { CMyDlg MyDlg; MyDlg.DoModal(); //DoModal()是CDialog类成员函数,通过调用该 //函数将显示对话框。 } 7)在CMainFrame.cpp文件里加: #include “MyDlg.h”// 之后运行。 2、无模式对话框(为186附加页) 非模式对话框,弹出后,可一直保留在屏幕上,用户可继续在应用中进行其它操作或启动其它应用程序,当需要使用对话框时,只需象激活一般窗口一样激活对话框即可。

常用控件中英文对照

Accordion:可折叠标签Alert Box:警告弹窗 Arrow / Line:箭头标记Breadcrumbs:面包屑导航Browser Window:浏览器窗口Button:按钮 Button Bar / Tab Bar:选项条Calendar:日历 Callout:插图编号 Bar Chart:条形图 Column Chart:柱状图 Line Chart:折线图 Pie Chart:饼图Checkbox:复选框

Checkbox Group:复选框组 Color Picker:颜色选择器 combobox / PullDown Menu / DropDown List / Select List:下拉列表 Comment / Sticky Note / To Do:电子便签 Cover Flow:苹果首创的将多首歌曲的封面以3D界面形式显示出来的方式 Data Grid / Table:数据表 Data Chooser / Data Picker:日期选择器 Field Set / Group / Container:该控件可将表单内的相关元素分组Formatting Toolbar / Rich Text Editor Toolbar:格式化工具条,富文本编辑器 Geometric Shape:几何形状 Help Button:帮助按钮 Horizontal Curly Brace:水平花括号

Horizontal Rule / Separator / Line / HR:水平分隔线Horizontal Scroll Bar:水平滚动条 Horizontal Slider:水平滑块 Horizontal splitter / Separator / Drag Bar:水平分隔器Icon:图标 Icon and Text Label:图标和文本标签 Image:图像 iOS Keyboard:iOS键盘 iOS Menu:iOS菜单 iOS Picker:iOS选择器 iPad:iPad iPhone:iPhone Label / String of Text:文本字符串 Link:链接

VC++6.0入门【第六章 创建和使用对话框】

第6章创建和使用对话框 对话框是一种用户界面,几乎每一个Windows程序都使用对话框与用户进行交互。对话框可能是一个简单的只含有OK按钮的消息框,也可以是一个复杂的数据输入表单。对话框上有一些方便用户输入的控件,对话框依靠这些控件与用户进行交互,其实质是一个接收消息的窗口。 在本章节我们主要讲述模式对话框和无模式对话框的原理和使用方法,下一章将详细介绍各种控件的使用。你将学习创建一个对话框,使用对话框模板编辑一个对话框资源,并在程序中调用对话框的方法。 6.1 对话框的基本原理 6.1.1 对话框的工作原理 在创建一个对话框之前,我们先来了解一下对话框是如何工作的,对话框的数据来自三方面:对话框资源、对话框对象、和一个文档对象: 1.对话框资源 对话框资源是一个用户输入或取得数据的图形界面。这个图形界面是使用Develop Studio的对话框编辑器在对话框模板上创建的,程序员可以在对话框模板上增加并编辑控件,生成对话框资源。当应用程序运行时,就可以得到一个对话框。 2.对话框对象 MFC使用CDialog类来描述对话框,它是CWnd类的派生类。在CWnd类的基础上增加了数据交换的功能。当创建一个新的对话框资源后,使用ClassWizard可以创建一个对话框类的派生类。对话框对象实现了对话框和应用程序之间的通信。在应用程序中定义一个对话框对象后,在对话框显示前,可以通过访问对话框对象的成员变量为一个对话框的控件初始化,在对话框关闭后,可以通过访问对话框对象的成员变量获得用户的输入数据。 3.文档对象 MFC使用文档对象描述应用程序处理的数据,用户输入的数据要进一步的处理,通常要先存贮到文档对象中。例如:一个学生记录处理的应用程序,用户通过一个对话框输入学生记录并贮存到一个文件中。应用程序的处理顺序是:用户在对话框中输入信息,通过对话框对象得到输入信息,将输入信息整理到文档对象中,使用序列化函数将文档对象存贮到一个文件中,所以文档对象扮演了一个很重要的数据交换的角色。 MFC使用以上三者实现用户与应用程序之间数据交换,数据交换流程见图6-1所示,遵循四个步骤。

VB常用控件介绍

VB常用控件介绍 (一)标签的常用属性 1、Name:名称。默认为Label1。 2、Caption:标签显示的文字。 3、Font:设置显示文字的性质。 4、Backcolor:背景色 5、Visible:设置标签是否可见 (二)命令按钮的常用属性 1、Name:默认值为Command1 2、Caption:按钮上显示文字。 3、Visible:设置按钮是否可见。 (三)窗体的常用属性 1、Name:定义对象的名称,默认为Form1,可以在属性窗口更改,运行时不可改。(注:与Caption区别) 2、BackColor:设置窗体的背景色 属性窗口:①调色盘选择颜色②输入16进制值 3、Caption:窗体标题栏中显示的文字。 4、Font:设置窗体字体类型。 5、Height(高)、Width(宽):设置窗体大小。 6、StartUpPosition:设置窗口位置。 (四)文本框常用属性 1、Name:默认为Text1,可修改为以Txt为前缀的名称。 2、Text:显示在文本框中的文字。 3、MaxLength:设置输入字符串的长度限制。 4、PassWordChar:设置输入密码时用户输入的字符。 (五)驱动器列表框常用属性 1、Name:名称。默认为Drive1。 2、Drive: 驱动器列表框中的驱动器名。 (六)目录列表框常用属性 1、Name:名称。默认为Dir1。 2、Path: 返回或设置当前路径。

(七)目录列表框常用属性 1、Name:名称。默认为File1。 2、Path: 返回或设置当前路径。 (八)操作对话框控件常用属性(进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作) 1、Name:名称。默认为CommonDialog1。 2、ShowOpen:显示“打开”对话框。 3、ShowSave显示“另存为”对话框。 4、ShowColor显示“颜色”对话框。 5、ShowFont显示“字体”对话框。 6、ShowPrinter显示“打印”或“打印选项”对话框。 7、ShowHelp 调用 Windows 帮助引擎。 (九)菜单的制作: 1、菜单编辑器的使用: “工具”/“菜单编辑器” 2、菜单的创建: (1)“标题”:输入菜单项文本(相当于Caption) (2)“名称”:输入菜单项名称,编程用。(相当于Name) (3)降低可上升一个层次 改变菜单项顺序 复选:可多选,左边加上√有效:是否可用(Enabled) 可见:是否可见(Visible) (4)单击“下一个”或“插入”,建立下一个菜单 (5)确定 3、菜单分组: 分隔线作为一个菜单项,“标题”中输入“-”(连字符,并角),“名称”任意。 4、访问键设置: 使用:Alt+字母 设置:“标题”中,字母前加“&” 5、快捷键设置: 在列表中选择相应的快捷键。 (1)第一级菜单无快捷键 (2)同一菜单的子菜单中不能有相同的访问键和快捷键

相关主题
文本预览
相关文档 最新文档