精华内容
下载资源
问答
  • 一、对话框Windows提供的标准对话框:打开文件、另存为、浏览文件夹、颜色对话框、字体对话框C#提供了两种特殊对话框:消息对话框、关于对话框1. 打开对话框 OpenFileDialog(1)Filter属性: Excel文件|*.xls ”,...

    一、对话框

    Windows提供的标准对话框:打开文件、另存为、浏览文件夹、颜色对话框、字体对话框

    C#提供了两种特殊对话框:消息对话框、关于对话框


    1. 打开对话框 OpenFileDialog

    (1)Filter属性: Excel 文件 |*.xls ”,前面的“ Excel 文件”成为标签,是一个可读的字符串,可以自定义,“ |*.xls ”是筛选器,表示筛选文件夹中后缀名为 .xls 的文件 ,* ”表示匹配 Excel 文件名称的字符串。

    • Filter是null或Empty,表示显示所有文件,并总会显示文件夹
    • 需要筛选特定的文件,设置Filter属性为“标签|*.后缀”,按照这个格式设置,标签可以自定义,是字符串即可,后缀表示你需要筛选的文件后缀,例如“.txt、.doc”等
    • 需要筛选多种文件,比方说需要筛选图片文件,但是图片文件的后缀有几种,例如jpg、png、gif等,当需要同时筛选这些文件,设置Filter属性为:标签|*.jpg;*.png;*.gif”,注意:只是在筛选器中多添加了几个后缀,不同后缀之间使用分号隔开
    • 当需要筛选多种文件,但是不同时将它们全部列出来,只有用户分别通过下拉列表选择需要的文件类型时,才进行筛选。这种情况下只需要多设置几个筛选器即可,filter属性设置如下:“标签1|*.jpg|标签2|.png|标签3|.gif”。注意:不同的筛选器之间使用“|”分隔即可。

    (2)Multiselect:多选

    (3)FileNames属性:用来获取对话框中所有选定文件的文件名。每个文件名都既包含文件路径又包含文件扩展名。如果未选定文件,该方法将返回空数组。
    (4)RestoreDirectory属性:用来获取或设置一个值,该值指示对话框在关闭前是否还原当前目录。假设用户在搜索文件的过程中更改了目录,且该属性值为 true,那么,对话框会将当前目录还原为初始值,若该属性值为 false,则不还原成初始值。默认值为 false。


    运行:通用对话框对象名.ShowDialog();
    返回值:如果单击对话框中的【确定】按钮,则返回值为 DialogResult.OK;否则返回值为DialogResult.Cancel。

     

    2.另存为对话框 SaveFileDialog

    示例:一个按钮打开一个文本文件,把内容显示在RichTextBox控件中;另一个按钮将RichTextBox内容写入文本文件中。

    using System.IO;

     

    3.浏览文件夹

    选择的路径:对象.SelectedPath

    初始路径:对象.RootFolder

     

    4.颜色对话框

    .AllowFullOpen: 允许自定义颜色

    .AnyColor: 显示所有颜色

    .SolidColorOnly: 可选择复杂颜色

    示例:

     

    5.字体对话框


    二、菜单 MenuStrip

    MenuStrip 控件来设计菜单栏,该控件支持多文档界面、菜单合并、工具提示和溢出等功能。

    开发人员可通过添加访问键、快捷键、选中标记、图像和分割条来增加菜单可用性和可读性。

    控件上右键进行插入分隔符、设置图标

     

    三、工具栏控件 ToolStrip

     

    四、状态栏控件 StatusStrip

    通常StatusStrip控件由ToolStripStatusLabel对象组成,每个对象都可以显示文本、图像或同时显示。

    此外,还可以包含ToolStripDropButton、ToolStripSplitButton、ToolStripProgressBar


    五、自定义事件消息处理,菜单中的打开文件历史记录

     

     

    展开全文
  • #include "mainwindow.h" ...#include //菜单栏 #include //消息提示框 #include //工具栏 #include //状态栏 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { this->setWindowTitle("呵呵");
        对话框是 GUI 程序中不可或缺的组成部分。很多不能或者不适合放入主窗口的功能组件都必须放在对话框中设置。对话框通常会是一个顶层窗口,出现在程序最上层,用于实现短期任务或者简洁的用户交互。尽管 Ribbon 界面的出现在一定程度上减少了对话框的使用几率,但是,我们依然可以在最新版本的 Office 中发现不少对话框。因此,在可预见的未来,对话框会一直存在于我们的程序之中。

        Qt 中使用 QDialog 类实现对话框。就像主窗口一样,我们通常会设计一个类继承 QDialog。QDialog(及其子类,以及所有 Qt::Dialog 类型的类)的对于其 parent 指针都有额外的解释:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent 的中心)。顶层窗口与非顶层窗口的区别在于,顶层窗口在任务栏会有自己的位置,而非顶层窗口则会共享其父组件的位置。

        对话框分为模态对话框和非模态对话框。所谓模态对话框,就是会阻塞同一应用程序中其它窗口的输入。模态对话框很常见,比如“打开文件”功能。你可以尝试一下记事本的打开文件,当打开文件对话框出现时,我们是不能对除此对话框之外的窗口部分进行操作的。与此相反的是非模态对话框,例如查找对话框,我们可以在显示着查找对话框的同时,继续对记事本的内容进行编辑。

        Qt 支持模态对话框和非模态对话框。其中, Qt 有两种级别的模态对话框:应用程序级别的模态和窗口级别的模态,默认是应用程序级别的模态。应用程序级别的模态是指,当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口。窗口级别的模态是指,该模态仅仅阻塞与对话框关联的窗口,但是依然允许用户与程序中其它窗口交互。窗口级别的模态尤其适用于多窗口模式
        Qt 使用 QDialog::exec()实现应用程序级别的模态对话框,使用 QDialog::open()实现窗口级别的模态对话框,使用 QDialog::show()实现非模态对话框。回顾一下我们的代码,在上面的示例中,我们调用了 exec()将对话框显示出来,因此这就是一个模态对话框。当对话框出现时,我们不能与主窗口进行任何交互,直到我们关闭了该对话框。
    #include "mainwindow.h"
    #include <QAction>//动作
    #include <QMenuBar>//菜单栏
    #include <QMessageBox>//消息提示框
    #include <QToolBar>//工具栏
    
    #include <QStatusBar>//状态栏
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
    {
        this->setWindowTitle("呵呵");
        this->setMinimumSize(300,300);
        /*
         * 在 QAction 构造函数,我们传入了一个图标、一个文本和 this 指针。
         * 图标我们使用了 QIcon,传入值是一个字符串,这个字符串对应于 Qt 资源文件中的一段路径。
         * 以 : 开始,意味着从资源文件中查找资源。
         * QAction 第二个参数中,文本值前面有一个 &,意味着这将成为一个快捷键。
         * 下面一句,我们使用了 setShortcut() 函数,用于说明这个 QAction 的快捷键。 Qt 的
         * QKeySequence 为我们定义了很多内置的快捷键,比如我们使用的 Open。
         * setStatusTip() 则实现了当用户鼠标滑过这个 action 时,会在主窗口下方的状态栏显示相应的提示。
         *后面的 connect() 函数, 将这个 QAction 的 triggered() 信号与 MainWindow 类的
         * open() 函数连接起来。当用户点击了这个 QAction 时,会自动触发 MainWindow 的 open() 函数。
        */
        openaction=new QAction(QIcon(":/new/prefix1/myico"),tr("&打开文件"),this);
        openaction->setShortcuts(QKeySequence::Open);
        openaction->setStatusTip(tr("open an existing file"));
        connect(openaction,&QAction::triggered,this,&MainWindow::open);
        /*
         *下面的 maneBar()、 toolBar() 和 statusBar() 三个是 QMainWindow 的函数,用于创建并返回
         * 菜单栏、工具栏和状态栏。我们可以从代码清楚地看出,我们向菜单栏添加了一个 File 菜单,
         * 并且把这个 QAction 对象添加到这个菜单;同时新增加了一个 File 工具栏,也把 QAction 对
         * 象添加到了这个工具栏。我们可以看到,在菜单中,这个对象被显示成一个菜单项,在工具栏变
         * 成了一个按钮。至于状态栏,则是出现在窗口最下方,用于显示动作对象的提示信息的
        */
        /*
         * menuBar() 是 QMainWindow提供的函数,因此你是不会在 QWidget 或者 QDialog 中找到它的。
         * 这个函数会返回窗口的菜单栏, 如果没有菜单栏则会新创建一个。QMenuBar 代表的是窗口
         * 最上方的一条菜单栏。我们使用其 addMenu() 函数为其添加菜单。
         * QToolBar 就是工具栏。我们使用的是 addToolBar()函数添加新的工具栏。
         * 为什么前面一个是 menuBar() 而现在的是 addToolBar() 呢?因为一个窗口只有一个菜单栏,
         * 但是却可能有多个工具栏。
        */
        QMenu *file=menuBar()->addMenu(tr("&文件"));
        file->addAction(openaction);
        QMenu *file2=menuBar()->addMenu(tr("&主页"));
        file2->addAction(openaction);
        QToolBar *toolbar=addToolBar(tr("&File"));
        toolbar->addAction(openaction);
        QStatusBar *statusbar=statusBar();
        statusbar->addAction(openaction);
    }
    
    void MainWindow::open(){
        QDialog dlg;
        dlg.setWindowTitle("嘿嘿");
        /*
         * Qt 使用 QDialog::exec() 实现应用程序级别的模态对话框,使用 QDialog::open() 实现窗口级别的
         * 模态对话框,使用 QDialog::show() 实现非模态对话框。
        */
        dlg.exec();
    }
    /*
     * 非模态对话框,在堆上建立
     * setAttribute() 函数设置对话框关闭时,自动销毁对话框。
     * void MainWindow::open()
     * {
     * QDialog *dialog = new QDialog;
     * dialog->setAttribute(Qt::WA_DeleteOnClose); // 或者 dialog->deleteLater();
     * dialog->setWindowTitle(tr("Hello, dialog!"));
     * dialog->show();
     * }
    */
    MainWindow::~MainWindow()
    {
    }



    展开全文
  • 对话框 既能引起用户的注意,也可以接收用户的输入。可用来提示重要信息或提供用户选项。 对话框是AlertDialog类(常用的Dialog子类)的一个实例。 AppCompat兼容库能将部分最新系统的特色功能移植到Android旧版本...

    对话框 既能引起用户的注意,也可以接收用户的输入。可用来提示重要信息或提供用户选项。

    对话框是AlertDialog类(常用的Dialog子类)的一个实例。

    AppCompat兼容库能将部分最新系统的特色功能移植到Android旧版本中。(比如可将新的对话框,让旧版本的用户也体验到)添加AppCompat依赖库(如下):


    建议将AlertDialog封装在DialogFragment实例中使用,这样可以更加灵活的显示对话框。

    要显示对话框:①创建DialogFragment类(或其子类);②创建AlertDialog;③借助FragmentManager在屏幕上显示对话框(fragment实例的两个方法:(1show(FragmentManager,String);(2)show(FragmentTransaction,String))。

     

    使用Alertdialog.Builder setView(View view)方法配置对话框。

     

    fragment之间的数据传递:将数据保存在该fragmentargument bundle中,打包好为extra并附加到Intent上,然后调用onActivityResult()方法,实现fragment之间的数据传递,而且可以更加灵活地展现对话框fragment.

    数据返回:(1)设置目标fragmentsetTargetFragment(目标fragment,请求代码);

    (2)传递数据给目标fragmentonActivityResult(请求代码,结果代码,Intent)。

     

     

    工具栏:工具栏可以安置菜单选项,提供应用导航,还能帮助统一设计风格,塑造品牌形象。使用AppCompat库:添加AppCompat依赖库;使用一种AppCompat主题;确保所有activity都是AppCompatActivity子类。

    工具栏菜单由操作项组成,它占据着工具栏右上方区域。操作项的操作应用于当前屏幕,甚至整个应用。Activity类提供了管理菜单的回调函数(创建菜单:onCreateOptionsMenuMenu);响应菜单:onOptionsItemSelected(MenuItem item))。


    后退键导航又称临时性导航,只能返回到上一次浏览过的用户界面;而层级式导航,可在应用内逐级向上导航,向上导航很可能会让用户迷失在众多的activity中。


    展开全文
  • (1)新建一个基于对话框的MFC程序,打开对话框属性设置界面,去掉对话框的标题和边界BORDER(vc和vs的设置相似,这里使用的是vs2015,界面与vc稍有不同), (2)在客户曲自绘一个标题和关闭按钮,需要使用到WM_...

    一个简单的标题栏自绘
    一:步骤
    (1)新建一个基于对话框的MFC程序,打开对话框属性设置界面,去掉对话框的标题栏和边界BORDER(vc和vs的设置相似,这里使用的是vs2015,界面与vc稍有不同),
    (2)在客户曲自绘一个标题栏和关闭按钮,需要使用到WM_PAINT消息的处理函数,使用Class WIZARD添加OnPaint()消息相应函数
    (3)为了使自绘的标题栏能够用鼠标拖动窗口,并且使自绘的关闭按钮能够关闭界面,需要使用到OnNcHitTest(…)消息处理函数和OnLButtonDown(…)消息处理函数

    二:函数解释:
    (1)LRESULT CTest2Dlg::OnNcHitTest(CPoint point)
    功能:每当鼠标移动时,框架就为包含光标(或者是用SetCapture成员函数捕获了鼠标输入的CWnd对象)的CWnd对象调用这个成员函数

    参数:point,当前鼠标的坐标,相对于屏幕坐标系

    返回值:表示点击位置的类型,有以下类型
    HTBORDER:在不具有可变大小边框的窗口的边框上
    HTBOTTOM:在窗口的水平边框的底部
    HTBOTTOMLEFT:在窗口边框的左下角
    HTBOTTOMRIGHT:在窗口边框的右下角
    HTCAPTION:在标题条中
    HTCLIENT:在客户区中
    HTERROR:HTERROR 在屏幕背景或窗口之间的分隔线上(与HTNOWHERE相同,除了 Windows的DefWndProc函数产生一个系统响声以指明错误)
    HTGROWBOX:在尺寸框中
    HTHSCROLL:在水平滚动条上
    HTLEFT:在窗口的左边框上
    HTMAXBUTTON:在最大化按钮上
    HTMENU:在菜单区域
    HTMINBUTTON:在最小化按钮上
    HTNOWHERE:在屏幕背景或窗口之间的分割线上
    HTREDUCE:在最小化按钮上
    HTRIGHT:在窗口的右边框上
    HTSIZE:在尺寸框中(与HTGROWBOX相同)
    HTSYSMENU:在控制菜单或子窗口的关闭按钮上
    HTTOP:在窗口水平边框的上方
    HTTOPLEFT:在窗口水平边框的左上角
    HTTOPRIGHT:在窗口边框的右上角
    HTTRANSPARENT:在一个被其他窗口覆盖的窗口中
    HTVSCROLL:在垂直滚动条中
    HTZOOM:在最大化按钮上

    (2)void CTest2Dlg::OnLButtonDown(UINT nFlags, CPoint point)
    功能:当鼠标点击自绘的关闭按钮时,关闭窗口
    参数:nFlags,指示各种虚拟键是否按下。此参数可以是下列值的任意组合:
    如果按下CTRL键,MK_CONTROL 设置。
    如果鼠标左键滚动,MK_LBUTTON 设置。
    如果元鼠标按钮处于按下,MK_MBUTTON 设置。
    如果鼠标右键滚动,MK_RBUTTON 设置。
    如果SHIFT键下降,MK_SHIFT 设置。
    point
    指定光标的x坐标和y坐标。这些坐标始终是相对于窗口左上角的。

    (3) BOOL PtInRect( POINT point ) const throw( );
    功能:检测某个点是否在某个矩形中
    参数:point
    包含POINT 结构或 CPoint 对象。
    返回值
    非零,则点在 CRect之间;否则为0。

    (4)CDC::DrawText
    enter description here

    三:代码
    Test2Dlg.h头文件,添加一个存放关闭按钮矩形位置的CRect对象m_rtBtnClose;然后使用类相对添加相关消息相应函数

    
    // Test2Dlg.h : header file
    //
    
    #pragma once
    
    
    // CTest2Dlg dialog
    class CTest2Dlg : public CDialogEx
    {
    public:
        CRect m_rtBtnClose;
    
    // Construction
    public:
        CTest2Dlg(CWnd* pParent = NULL);    // standard constructor
    
    // Dialog Data
    #ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_TEST2_DIALOG };
    #endif
    
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    
    
    // Implementation
    protected:
        HICON m_hIcon;
    
        // Generated message map functions
        virtual BOOL OnInitDialog();
        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
        afx_msg void OnPaint();
        afx_msg HCURSOR OnQueryDragIcon();
        DECLARE_MESSAGE_MAP()
    public:
        afx_msg void OnNcPaint();
        afx_msg LRESULT OnNcHitTest(CPoint point);
        afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
        afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
    };
    

    Test2Dlg.cpp实现

    
    // Test2Dlg.cpp : implementation file
    //
    
    #include "stdafx.h"
    #include "Test2.h"
    #include "Test2Dlg.h"
    #include "afxdialogex.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    
    
    // CAboutDlg dialog used for App About
    
    class CAboutDlg : public CDialogEx
    {
    public:
        CAboutDlg();
    
    // Dialog Data
    #ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_ABOUTBOX };
    #endif
    
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    
    // Implementation
    protected:
        DECLARE_MESSAGE_MAP()
    };
    
    CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
    {
    }
    
    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialogEx::DoDataExchange(pDX);
    }
    
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
    END_MESSAGE_MAP()
    
    
    // CTest2Dlg dialog
    
    
    
    CTest2Dlg::CTest2Dlg(CWnd* pParent /*=NULL*/)
        : CDialogEx(IDD_TEST2_DIALOG, pParent)
    {
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
    
    void CTest2Dlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialogEx::DoDataExchange(pDX);
    }
    
    BEGIN_MESSAGE_MAP(CTest2Dlg, CDialogEx)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_WM_NCPAINT()
        ON_WM_NCHITTEST()
        ON_WM_LBUTTONDOWN()
        ON_WM_LBUTTONUP()
    END_MESSAGE_MAP()
    
    
    // CTest2Dlg message handlers
    
    BOOL CTest2Dlg::OnInitDialog()
    {
        CDialogEx::OnInitDialog();
        // Add "About..." menu item to system menu.
        // IDM_ABOUTBOX must be in the system command range.
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);
    
        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
            BOOL bNameValid;
            CString strAboutMenu;
            bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
            ASSERT(bNameValid);
            if (!strAboutMenu.IsEmpty())
            {
                pSysMenu->AppendMenu(MF_SEPARATOR);
                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
            }
        }
    
        // 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
    
        // TODO: Add extra initialization here
    
        return TRUE;  // return TRUE  unless you set the focus to a control
    }
    
    void CTest2Dlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
            CAboutDlg dlgAbout;
            dlgAbout.DoModal();
        }
        else
        {
            CDialogEx::OnSysCommand(nID, lParam);
        }
    }
    
    // If you add a minimize button to your dialog, you will need the code below
    //  to draw the icon.  For MFC applications using the document/view model,
    //  this is automatically done for you by the framework.
    
    void CTest2Dlg::OnPaint()
    {
        CPaintDC dc(this);
        CRect rect;
        CRect tmprect;
        GetClientRect(&rect);
        rect.bottom = 30;
        tmprect = rect;
        int nCount = 165 - 115 + 186 - 158 + 190 - 115;
        int nIncrecs = (rect.right - rect.left) / nCount;
        rect.left = rect.right = 0;
    
        for(int i=115;i<=165;i++)
            for(int j=158;j<=186;j++)
                for(int k=115;k<=190;k++)
                {
                    rect.left = rect.right;
                    rect.right += nIncrecs;
                    dc.FillSolidRect(rect, RGB(i, j, k));
                }
    //  dc.FillSolidRect(rect, RGB(0, 0, 255));
        dc.SetBkMode(TRANSPARENT);
        CString str = TEXT("欢迎使用本软件");
        dc.SetTextColor(RGB(255, 0, 0));
        dc.DrawText(str, tmprect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);//水平居中和垂直居中必须和DT_SINGLELINE搭配,否则起不到效果
    
    
        //绘制关闭按钮
        CRect rtBtnClo;
        GetClientRect(&rtBtnClo);
        rtBtnClo.left = rtBtnClo.right - 30;
        rtBtnClo.right = rtBtnClo.right - 10;
        rtBtnClo.top = 5;
        rtBtnClo.bottom = 25;
        m_rtBtnClose = rtBtnClo;
    
        dc.Rectangle(rtBtnClo);
        dc.MoveTo(rtBtnClo.left, rtBtnClo.top);
        dc.LineTo(rtBtnClo.right, rtBtnClo.bottom);
        dc.MoveTo(rtBtnClo.right, rtBtnClo.top);
        dc.LineTo(rtBtnClo.left, rtBtnClo.bottom);
    
    }
    
    // The system calls this function to obtain the cursor to display while the user drags
    //  the minimized window.
    HCURSOR CTest2Dlg::OnQueryDragIcon()
    {
        return static_cast<HCURSOR>(m_hIcon);
    }
    
    
    
    void CTest2Dlg::OnNcPaint()
    {
    
        // TODO: Add your message handler code here
        // Do not call CDialogEx::OnNcPaint() for painting messages
    }
    
    
    LRESULT CTest2Dlg::OnNcHitTest(CPoint point)
    {
        // TODO: Add your message handler code here and/or call default
        UINT nHitTest=CDialogEx::OnNcHitTest(point);
        CRect rect;
        GetClientRect(&rect);
        rect.bottom = 30;
        //函数参数point是相对于屏幕坐标的,需要将其转换为
        //客户区坐标才能使用PtInRect(),否则会因为坐标的不同使判断失误
        ScreenToClient(&point);
        if (rect.PtInRect(point))
        {
            if (HTCLIENT == nHitTest)
                nHitTest = HTCAPTION;
                //如果鼠标点中的是关闭按钮的位置,需要将上一步的设置还原,
                //否则鼠标点击自绘的标题栏的时候,系统无法发送WM_LBUTTONDOWN消息,也就无法处理关闭按钮
            if (m_rtBtnClose.PtInRect(point))
            {
                nHitTest = HTCLIENT;
            }
        }
        return nHitTest;
    }
    
    
    void CTest2Dlg::OnLButtonDown(UINT nFlags, CPoint point)
    {
        // TODO: Add your message handler code here and/or call default
    //  ScreenToClient(&point);
        if (m_rtBtnClose.PtInRect(point))
        {
            //AfxMessageBox(TEXT("测试关闭按钮"));
            CDialog::OnCancel();
        }
        CDialogEx::OnLButtonDown(nFlags, point);
    
    }
    
    
    void CTest2Dlg::OnLButtonUp(UINT nFlags, CPoint point)
    {
        // TODO: Add your message handler code here and/or call default
        /*ScreenToClient(&point);
        if (m_rtBtnClose.PtInRect(point))
        {
            AfxMessageBox(TEXT("测试关闭按钮"));
        }*/
        CDialogEx::OnLButtonUp(nFlags, point);
    }
    
    展开全文
  • 【相关概念】窗口、命令、工具对话框 【主要内容】窗口的操作、菜单对话框元素及操作 一、概念 窗口:计算机应用程序的一个图形化操作界面,一个窗口代表一个相应的应用程序; 命令:与计算机对话的一种表达...
  • 这个函数会返回窗口的菜单栏,如果没有菜单栏则会新创建一个。这也就解释了,为什么我们可以直接使用menuBar()函数的返回值,毕竟我们并没有创建一个菜单栏对象啊!原来,这就是menuBar()为我们创建好并且返回了的。...
  • VB讲课笔记10:菜单对话框

    千次阅读 2018-03-14 06:46:11
    VB讲课笔记10:菜单对话框一、用户界面设计基础用户界面是应用程序最基本的组成部分,其内容包括界面基本元素的外观设计和实现相应功能的代码编制。 1、用户界面元素(User Interface Element) 窗体是用户界面...
  • 对话框不能像窗口那样任意地改变大小,在标题上也没有最小化、最大化按钮,取而代之的是帮助按钮。2.4.1 对话框组成和基本操作WindowsXP中的对话框用于向程序提供信息。对话框通常具有多个...
  • Android开发:菜单栏Menu用法讲解

    万次阅读 2018-06-07 22:20:13
    菜单的分类菜单是Android应用中非常重要且常见的组成部分,主要可以分为三类:选项菜单、上下文菜单/上下文操作模式以及弹出菜单。它们的主要区别如下:选项菜单是一个...上下文操作模式将在屏幕顶部栏(菜单栏)...
  • 对象是一个没有边界和菜单栏的顶层窗口。     4)   Panel: 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。不能单独存在,必须放置到其他容器中。   ...
  • 对话框

    千次阅读 2011-05-03 15:51:00
    对话框是一种用户界面,它的主要功能是输出信息和接收用户的输入。对话框与控件是密不可分的,在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互.一个典型的对话框例子是选择了File-Open命令后弹...
  • 1.5.2 在Windows应用程序中设计菜单栏、工具栏和状态栏 1.菜单栏的设计 在Windows应用程序中制作菜单栏时,可以使用MenuStrip控件。使用MenuStrip控件可以将菜单设计成Microsoft Office中那样。另外,用户还...
  • 选择菜单项File->New->Project,弹出"New Project"对话框。 左侧面板中Installed Templated的Visual C++下选择MFC,中间窗口中选择MFC Application,然后在下面的Name编辑框中键入工程名称,本例取名"Addition...
  • 菜单栏、工具栏和状态栏

    千次阅读 2015-11-12 15:07:22
    在之前的《添加动作》一文中,我们已经了解了,Qt 将用户与界面进行交互的元素抽象为一种...QAction可以添加到菜单上、工具上。期间,我们还详细介绍了一些细节问题,比如资源文件的使用、对象模型以及布局管
  • 模块五 菜单栏、工具栏、状态栏

    千次阅读 2010-09-29 17:30:00
    Visual Basic .NET 教程模块五菜单栏、工具栏、状态栏 能力目标:能够设计、创建和使用菜单、工具栏和状态栏 知识目标:掌握菜单控件、工具栏控件和状态栏控件常用的属性、方法和事件   ...
  • 1.菜单设计 ...每个菜单组件都包括一个菜单栏、每个菜单栏有包含N个菜单,每个菜单包含N个菜单项。 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing
  • 窗口,菜单对话框的相关操作

    千次阅读 2018-06-17 17:45:26
    【相关概念】窗口、命令、工具对话框【主要内容】窗口的操作、菜单对话框元素及操作一、概念窗口:计算机应用程序的一个图形化操作界面,一个窗口代表一个相应的应用程序;命令:与计算机对话的一种表达方式。...
  •  显示一个由Preference对象组成的列表,与PreferenceActivity相同。它用于为程序创建“设置”activity。 1.2 范例  写一个读新闻的程序,可以用一个fragment显示标题列表,另一个fragment显示...
  • 在之前的《添加动作》一文中,我们已经了解了,Qt 将用户...这一节则是详细介绍关于菜单栏、工具栏以及状态栏的相关内容。我们假设窗口还是建立在QMainWindow类之上,这会让我们的开发简单许多。当然,在实际开发过程中
  • 2.2 win98窗口、菜单和对话框的操作1、窗口的认识·为什么叫窗口(windows ) ·各种类型的窗口 ·一般窗口的组成: 图标 窗口控制按钮 菜单栏 工具栏 状态栏 横向滚动条/纵向滚动条 工作区 2、窗口操作 · 最大化、...
  • ■ 菜单栏 Menu  菜单是很多GUI必不可少的一部分。要建立菜单,必须先创建菜单栏: menuBar = MenuBar() menu = Menu() item1 = menu.Append(-1,"itemA") #itemA是显示在菜单上的名字 item2 = menu.Append...
  • MFC 对话框

    千次阅读 2013-10-30 15:15:47
    MFC 对话框 1、对话框基本要点和生命周期 MFC对话框支持“所见即所得”编程模式。其类型分为模式对话框和非模式对话框对话框由一个rc资源文件描述外观,通过ID与一个CPP类相连接,对话框内的控件使用...
  •  用户试图从窗口的系统菜单中关闭窗口时调用。   void windowDeactivated(WindowEvent e)   当 Window 不再是活动 Window 时调用。   void windowDeiconified(WindowEvent e)   窗口从最小化状态变为...
  • 更多组件■ 菜单栏 Menu菜单是很多GUI必不可少的一部分。要建立菜单,必须先创建菜单栏:menuBar = MenuBar()menu = Menu()item1 = menu.Append(-1,"itemA") #itemA是显示在菜单上的名字item2 = menu.Append(-1,...
  • ABAP 实现对话框(一)

    千次阅读 2016-10-20 18:35:47
    一、报表程序 VS 对话框程序1.报表程序 结构简单 由事件块组成程序构架 执行方式多样 2.对话框程序 结构复杂 ...图形用户接口包括菜单栏、标准工具栏、应用程序工具栏和标题栏 程序由事务代码触发运行

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,427
精华内容 8,970
关键字:

对话框的组成菜单栏