菜单与对话框
- 格式:pptx
- 大小:509.85 KB
- 文档页数:42
认识windows7的窗⼝和对话框认识windows7的窗⼝和对话框⼀、windows7窗⼝的构成及操作1、窗⼝构成在windows7下,程序都在各⾃的窗⼝中运⾏,掌握窗⼝的构成和操作⽅法是熟练使⽤计算机的基础。
应⽤程序的窗⼝虽然千差万别,但所有窗⼝都有着相同的结构并遵循着统⼀的操作规则。
每个程序运⾏后都在屏幕上占⽤⼀块矩形区域,这个区域称作应⽤程序窗⼝。
下图是记事本程序和画图程序在运⾏时的窗⼝。
各部分的结构如图所⽰,它们代表了两种典型的窗⼝。
1)标题栏窗⼝最上⽅的横条称作标题栏,标题栏上⼀般标着当前程序的名称和当前正在处理的⽂档的名称。
2)窗⼝最⼤化、窗⼝最⼩化和窗⼝关闭图标标题栏最右端是三个控制窗⼝的图标,这三个图标分别⽤于窗⼝的最⼤化、最⼩化和关闭。
3)窗⼝控制图标位于窗⼝左上⾓,通过该图标我们可以通过键盘来控制窗⼝的⼤⼩和移动,现很少使⽤。
按Alt+空格键可激活该图标下的菜单。
窗⼝控制菜单如下图所⽰。
激活菜单后可以通过键盘上的光标移动键(箭头键)选菜单项,回车键执⾏菜单命令,从⽽实现通过键盘完成窗⼝操作。
4)⽔平菜单栏/选项卡标签窗⼝标题栏下⽅的⼀⾏⽂字,称作窗⼝的⽔平菜单栏,相隔的每组⽂字都代表⼀组操作命令,也称作菜单项,点击某菜单项后可打开下级菜单,下级菜单也称作下拉菜单,参见下图3中的红框区域。
⽐如我们点击“⽂件”菜单项,则出现与“⽂件”操作相关的下拉菜单,下拉菜单中有⼀组与⽂件相关的操作命令。
Windows7有些程序将菜单栏改成了选项卡标签,虽然也可称作菜单,但选中后并不出现下拉菜单⽽是进⾏功能区的切换。
功能区分类集中存放了程序⽤到的⼤部分⼯具。
这种功能区实际是将菜单命令⽤图形来表⽰了。
下图就展⽰了画图程序的两种功能区。
展⽰了画图程序在选取不同“标签”时窗⼝功能区的变化。
左图是选中“主页”标签后的功能区,右图是选中“查看”标签后显⽰的功能区。
5)窗⼝⼯作区窗⼝的主要区域称作窗⼝⼯作区,不同的程序窗⼝⼯作区显⽰的内容不同,记事本程序窗⼝⼯作区⽤于输⼊⽂字,画图程序则⽤来绘制图形。
专业课程实验报告课程名称:windows程序设计开课学期: 2015至2016 学年第1学期专业:计算机科学与技术年级班级:2013级学生姓名:刘敏学号:222013*********实验教师:刘红俊计算机与信息科学学院软件学院wcex.lpszMenuName = MAKEINTRESOURCE(IDC_WIN32PROJECT2);2.对话框资源及其应用:1)模式对话框:①定义对话框资源:资源文件中如此定义对话框资源:对话框名 DIALOGEX x,y,weight,hightSTYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION ""FONT 9, ""BEGIN对话框的控件定义END②调用函数DiaLogBox显示对话框;③构造对话框消息处理函数;④关闭对话框。
2)非模式对话框:①定义非模式对话框:STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION |WS_SYSMENU|WS_VISIBLE②创建对话框函数:HWND CreateDialog{hInst, MAKEINTRESOURCE(IDD_SHOWBOX),hWnd,(DLGPROC)DlgProc}③消息循环:while (GetMessage(&msg, NULL, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}④关闭对话框:DestroyWindow(hDlg);3)程序加载图标:IDI_WIN32PROJECT2 ICON "Win32Project2.ico"IDI_SMALL ICON "small.ico"(三)程序代码:Win32Project2.cpp// Win32Project2.cpp : 定义应用程序的入口点。
三种菜单编程实现1.新建插件工程mon。
2.添加依赖插件3.新建包mon.handler。
4.新建类NewFolderHandler,并继承AbstractHandler5.在插件根节点新建plugin.xml文件和icons文件夹。
6.扩展mands,并添加如下扩展信息:7.扩展org.eclipse.ui.handlers,添加信息如下:1.查找要扩展的视图ID,经过系统查询,视图ID为com.teamcenter.rac.ui.views.DetailsView。
2.根据前面所讲的视图菜单扩展规则,在扩展点添加视图菜单代码如下:3.通过Eclipse启动Teamcenter客户端,进入系统,则可以看到所添加的视图菜单:1.根据前面所讲的上下文菜单扩展规则,在扩展点添加上下文菜单代码2. 重启Teamcenter系统,点击右键菜单,可以出现我们的上下文菜单添加My New Folder到File主菜单1.根据前面所讲的主菜单扩展规则,在扩展点添加主菜单代码2.启动Teamcenter系统并进入,就可以看到我们客户化的菜单项1.控制菜单出现在固定的透视图,代码如下所示:2.该方式控制My New Folder在My Teamcenter透视图中,如要添加到多个应用或者透视图中通过activeWhen可以控制菜单的启用与禁用1.在现有代码工程中建立自己的主菜单,并添加My New Folder菜单项,代码如下:新建mands.newmyfolder包。
2.新建NewFolderCustomAction类,该类继承AbstractAIFAction类并对run方法进行重写,代码如下:3.新建NewFolderCustomCommand类并继承AbstractAIFCommand类4.新建NewFolderCustomDialog类,并继承AbstractAIFDialog类,并实现InterfaceAIFOperationListener方法。
VC++单文档工程点击菜单弹出相应对话框
1、“资源视图-> Dialog”右键选择“添加资源”,在弹出的对话框中选择“Dialog ->新建”,创建新的对话框;
2、右键点击对话框,选择“属性”,为新的对话框指定一个ID和Caption(此步骤可省略,使用默认值);
3、右键点击对话框,选择“添加类”,为新的对话框添加相应的类,完成后会生成“xxx.h”和“xxx.cpp”两个文件;
4、“资源视图->Menu”,选择要使用的菜单,双击打开,在需要添加菜单的地方点击右键选择“新插入”,插入一个新的菜单以及具体菜单项。
5、右键点击具体菜单项,选择“属性”,为其指定一个ID(此步骤可省略,使用默认值);右键点击具体菜单项,选择“添加事件处理程序”,为其添加事件处理程序,并为其选择一个类,一般选择“CxxxView”。
6、在生成的事件处理函数中,添加以下代码
(1)DoModal
(2)Create、ShowWindow
以上两种方法在每次点击时都会生成新的对话框,不能保留对话框中输入的数据等信息。
(3)在主框架中实现。
QT(4).窗⼝、对话框、状态栏、菜单栏1、坐标体系以左上⾓为原点,X向右增加,Y向下增加。
对于嵌套窗⼝,其坐标是相对于⽗窗⼝来说的。
2、QWidget所有窗⼝及窗⼝控件都是从QWidget直接或间接派⽣出来的。
3、QMainWindowQMainWindow是⼀个为⽤户提供主窗⼝程序的类,包含⼀个菜单栏(menubar)、多个⼯具栏(tool bars)、多个锚接部件(dock widgets)、⼀个状态栏(status bar)及⼀个中⼼部件(central widget),是许多应⽤程序的基础,如⽂本编辑器,图⽚编辑器等。
1、菜单栏⼀个主窗⼝最多只有⼀个菜单栏。
位于主窗⼝顶部、主窗⼝标题栏下⾯。
创建菜单栏,通过QMainWindow类的menubar()函数获取主窗⼝菜单栏指针QMenuBar *menuBar() const创建菜单,调⽤QMenu的成员函数addMenu来添加菜单QAction*addMenu(QMenu * menu)QMenu*addMenu(const QString & title)QMenu*addMenu(const QIcon & icon, const QString & title)创建菜单项,调⽤QMenu的成员函数addAction来添加菜单项QAction*activeAction() constQAction*addAction(const QString & text)QAction*addAction(const QIcon & icon, const QString & text)QAction*addAction(const QString & text, const QObject * receiver,const char * member, const QKeySequence & shortcut = 0)QAction*addAction(const QIcon & icon, const QString & text,const QObject * receiver, const char * member,const QKeySequence & shortcut = 0)Q t 并没有专门的菜单项类,只是使⽤⼀个QAction类,抽象出公共的动作。
3.2 GUI控制单元(GUI Control Elements)下面部分将对上面提到的每个控制单元的意义和操作进行描述。
3.2.1 命令按钮(Command Buttons)命令按钮用来执行程序操作。
这里有两种类型的命令按钮:工具箱型(toolpad)和对话框型(form)。
下表给出了每种命令按钮的例子。
工具箱型命令按钮位于Operation工具箱和Global Control工具箱中;对话框型命令按钮位于GAMBIT对话框中(例如,规范对话框)。
要执行任意命令按钮所代表的操作,只需鼠标左击该按钮即可。
工具箱型命令按钮(T oolpad Command Buttons)工具箱型命令按钮用来执行的程序命令包括创建、网格划分、分配区域类型、或者察看模型以及在GUI上各种工作。
一些工具箱型命令按钮会引起直接的操作,另一些则会打开具体的对话框。
每一个工具箱型命令按钮都有一个代表该按钮功能的符号。
任何可以执行多个功能的按钮(多功能命令按钮)在它的左下角都有一个向下的小箭头。
例如,上面所示的Stitch Faces 命令按钮就可以执行如下的功能:●扫描实面●旋转实面●由线框形成实体要执行一个多功能命令按钮上当前显示的符号所代表的命令,鼠标左击按钮即可。
要改变命令按钮的功能,鼠标右击按钮,打开一个可利用的功能的列表,然后用鼠标左击需要的功能项,就把它从列表中选出来了。
对话框型命令按钮(Form Command Buttons)对话框型命令按钮可以用来执行与GAMBIT对话框有关的操作。
每个按钮只有一个名称(例如,Apply、Reset或Close)。
要执行一个对话框型命令按钮上的名称所代表的操作,只需鼠标左击该按钮即可。
3.2.2 选项按钮(Option Buttons)使用选项按钮可以在一个包含相关的,互相排斥的选项的隐藏菜单中进行选择。
它们只出现在规范对话框中,并在按钮面上以一个凸起的小矩形为标志。
选项按钮上的名称代表了当前从隐藏菜单中选择的选项。
为对话框增加菜单1.为对话框创建一个菜单资源IDR_MENU1。
2. 在对话框的属性对话框中在Menu属性中选择刚创建的菜单资源IDR_MENU1。
此时保存编译后,在对话框中就可看到菜单。
3.点击快捷键Ctrl + W,在“Add a Class”对话框中选择已存在的对话框类“Select an existing class”,打开“Select Class”对话框。
4. 选择对话框类,本例中的类名为CDlgDlg,选中进入下一步。
5. 进入MFC ClassWizard对话框,在消息映射属性页中,为菜单增加消息处理函数,本例中为“打开文件”菜单增加COMMAND处理函数,增加的函数名为OnFileOpen。
6.编辑OnFileOpen函数代码,实现自己定义的功能,本例只是简单显示“关于”对话框。
void CDlgDlg::OnFileOpen(){CAboutDlg dlgAbout;dlgAbout.DoModal();}编译运行后,点击文件菜单的子菜单“打开文件”,将弹出“关于”对话框,如下图所示。
接下来为对话框添加右键菜单。
1.为对话框增加事件2.在打开的对话框中,在左侧的消息/事件列表中选择WM_CONTEXTMENU,添加OnContextMenu函数。
3. 编辑代码如下。
void CDlgDlg::OnContextMenu(CWnd* pWnd, CPoint point){CMenu MyMenu;MyMenu.LoadMenu(IDR_MENU1);CMenu* pMyMenu=MyMenu.GetSubMenu(0);pMyMenu->TrackPopupMenu(TPM_LEFTBUTTON|TPM_LEFTALIGN,point.x ,point.y,this);MyMenu.DestroyMenu();}显示效果:很简单,但很实用。