MFC-实现菜单部分功能的实现

来源:互联网 发布:golang redis 连接池 编辑:程序博客网 时间:2024/06/07 01:20

计算器大概的界面是出来了,但是我们的电脑上自带的计算器可是有菜单功能的,我们也来添加一下。
这里写图片描述
首先我们进入资源视图,右键选择“添加资源”
这里写图片描述
然后点击“Menu”“新建”
这里写图片描述
然后先把界面做好,就是简单的输入,注意的是这些下划线在输入的时候应该这样写:编辑(&E),你输入好后它就显示下划线了
这里写图片描述
接着点击计算器的资源视图,这个时候最右边有它的属性框,选择这里写图片描述
运行一下即可插入到计算器的界面
这里写图片描述

接下就是添加一些功能了
就是复制和粘贴
首先这里写图片描述
然后就可以编写代码了

下面代码供上

void CMyWindowDlg::OnMenuCopy(){    // TODO: 在此添加命令处理程序代码    char sc[222] = "";    USES_CONVERSION;    strcpy(sc, W2A(m_edt_cs.GetBuffer()));    HGLOBAL hmem = NULL;    if (OpenClipboard())//是否打开成功剪贴板    {        if (EmptyClipboard()) //清空成功,则继续        {            hmem = GlobalAlloc(GHND, sizeof(sc)); //memalloc            char* pmem = (char*)GlobalLock(hmem);            memcpy(pmem, sc, sizeof(sc));            //SetClipboardData();            SetClipboardData(CF_TEXT, hmem);            //关闭剪切板            CloseClipboard();            GlobalUnlock(hmem);            //GlobalFree(pmem);  //释放全局内存        }    }}void CMyWindowDlg::OnMenuPaste(){    // TODO: 在此添加命令处理程序代码    //一、 判断剪贴数据格式是否是我们需要的    HGLOBAL hmem = NULL;    char s[256];    if (IsClipboardFormatAvailable(CF_TEXT))    {        //二、 打开剪贴板         if (OpenClipboard())        {            //三、 获取剪贴板句柄            hmem = GetClipboardData(CF_TEXT);            if (hmem)            {                //四、 锁定全局内存获取缓冲区指针,取出数据                char *ps = (char *)GlobalLock(hmem);                //取出数据                memcpy(s, ps, GlobalSize(hmem));            }        }    }    //五、 关闭剪贴板,以使其它程序可以访问,释放掉内存锁    CloseClipboard();    GlobalUnlock(hmem);    m_edt_cs = s;    UpdateData(false);}

之后还会添加更多的功能。

原创粉丝点击