MFC实现菜单弹出对话框,并在对话框中实现控件触发

首先我们要新建一个mfc工程,实验工具是vs,选择图中选项


然后下一步当中,设置成基于对话框


然后可以完成,也可以继续下一步设置窗口的一下小部件。

1.第一步,我们要在窗口上添加菜单。找到资源视图,右键添加资源。


选择menu,新建


之后,输入自己想要的菜单名


最后在


添加图中所缺代码:

        CMenu menu;
menu.LoadMenu(IDR_MENU1);  //IDR_MENU1为菜单栏ID号  
SetMenu(&menu);


至此完成了,菜单功能


2.第二步,我们新建一个dialog,注意这里要找到资源视图--dialog文件夹--右键--插入dialog(E)


然后,右键--添加类(C),自己取个名字。注意,这个类,接下来要用到。


3.第三步,我们就要在原有菜单基础上,通过菜单触发打开新的对话框

首先,在刚刚编辑菜单的界面,右键下拉菜单中的一个,添加事件处理程序


接着添加编辑


进入编辑区,首先,在头文件区域,加上刚刚所建的类,这里我取的名字是ai,所以我添加的是

#include“ai.h”

在编辑区加上


到此,完成了菜单触发对话框:



4.最后,就是要求的控件触发的任务了,这里给大家演示显示图片和文字吧。

显示图片,我们在刚刚新建的dialog中加入button控件,双击进入或者右键添加事件处理程序,添加图中代码,

代码:

        CImage image1;
image1.Load(_T("d:\\iverson.png"));
CDC* pDC = GetWindowDC();
image1.Draw(pDC->m_hDC, 60, 80);
ReleaseDC(pDC);


然后运行测试,点击button1,就实现控件触发了。


接着是显示文字

我们在刚刚的dialog上添加editcontrol,和button2   然后右键editcontrol添加变量(C)


之后的界面,在变量名那里取个名字,这里取名AI


之后,双击button2或者右键添加事件处理程序,添加图中代码

代码:

AI.SetWindowTextW(_T("阿伦艾弗森"));


至此完成任务,运行程序,测试;


  • 20
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
实现该功能需要在对话框添加一个成员函数,该函数会在对话框初始化时被自动调用。您可以在该函数添加对话框初始化时需要执行的代码。以下是一个示例: 1. 在您的对话框类头文件添加成员函数声明: ```c++ class CMyDialog : public CDialog { // ... public: virtual BOOL OnInitDialog(); // ... }; ``` 2. 在您的对话框实现文件添加成员函数定义: ```c++ BOOL CMyDialog::OnInitDialog() { if (!CDialog::OnInitDialog()) return FALSE; // 在此添加初始化代码 // ... return TRUE; } ``` 在上面的代码,`OnInitDialog` 函数是在对话框初始化时被自动调用的。如果您需要执行一些初始化代码,只需将其添加到函数即可。 3. 对话框初始化完成后,您可以在该函数添加对应控件的事件处理程序,例如: ```c++ BOOL CMyDialog::OnInitDialog() { if (!CDialog::OnInitDialog()) return FALSE; // 获取控件指针 CButton* pButton = (CButton*)GetDlgItem(IDC_BUTTON1); // 添加事件处理程序 pButton->SetWindowText(_T("Click me!")); pButton->ModifyStyle(0, BS_DEFPUSHBUTTON); pButton->SetFocus(); pButton->EnableWindow(TRUE); // ... return TRUE; } ``` 在上面的代码,我们获取了 `IDC_BUTTON1` 按钮的指针,并为它设置了一些属性和事件处理程序,例如修改按钮文本、设置默认按钮、设置焦点和启用按钮等。您可以根据需要自定义事件处理程序。 请注意,如果您需要在对话框打开后执行某些操作,您可以使用 `DoModal` 函数。例如: ```c++ CMyDialog dlg; if (dlg.DoModal() == IDOK) { // 执行某些操作 } ``` 在上面的代码,我们首先创建了一个 `CMyDialog` 对象,并调用 `DoModal` 函数打开对话框。如果用户单击了 OK 按钮,我们可以在 `if` 语句执行某些操作。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值