C++;MFC点击弹出自定义对话框

原文网址:http://blog.csdn.net/lishan9133/article/details/7778840

方法一:模态对话框

资源视图--Dialog--右键--添加资源--新建--对话框-,然后在已经生成的对话框中(解决资源视图中的dialog下的新生成的那个)右键--添加类。例如:添加CMyNewDlg类,在所要调的代码中(按钮点击方法所在的文件代码),先加头文件#include   "CMyNewDlg.h ",之后在按钮点击方法中:
void COnclickDlg::OnBnClickedOk()
{
 CMyNewDlg  Dlg;
 Dlg.DoModal();
}
 
方法二:非模态对话框
资源视图--Dialog--右键--添加资源--新建--对话框--然后在已经生成的对话框中(解决资源视图中的dialog下的新生成的那个)右键--添加类。例如:添加CMyNewDlg类,在所要调的代码中(按钮点击方法按钮点击方法所在的文件代码),先加头文件#include "CMyNewDlg.h ",之后在按钮点击方法中
void COnclickDlg::OnBnClickedOk()
{
 CMyNewDlg  *pDlg=new CMyNewDlg ;
 pDlg->Create(IDD_DIALOG2,this);
 pDlg->ShowWindow(SW_SHOW);
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 译者序 前言 第一部分 基础知识 第1章 窗口 2 1.1 窗口和API环境 2 1.1.1 三种类型窗口 2 1.1.2 客户区和客户区 3 1.2 窗口和MFC环境 4 1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一个窗口类 11 1.5.2 使用AfxRegisterClass ()函数 创建一个窗口类 12 1.6 怎样销毁一个MFC窗口类 14 1.7 厂商安装的窗口类 14 1.8 其他类型窗口 15 1.9 桌面窗口 16 1.10 小结 16 第2章 类 18 2.1 基类 18 2.1.1 CObject 18 2.1.2 CCmdTarget 19 2.1.3 CWnd 19 2.2 应用程序、框架、文档和视图类 19 2.2.1 CWinApp(O/C/W) 20 2.2.2 CView (O/C/W) 21 2.3 其他用户界面类 22 2.3.1 通用控件类 23 2.3.2 菜单类 23 2.3.3 对话框类 24 2.3.4 控制条类 24 2.3.5 属性类 25 2.4 绘图类 25 2.4.1 设备环境类 25 2.4.2 图形对象类 25 2.5 文件类 26 2.6 数据库类 26 2.6.1 ODBC类 26 2.6.2 DAO类 27 2.7 数据集类 27 2.8 其他数据类 27 2.9 通信类 28 2.10 其他类 29 2.11 小结 31 第3章 消息处理 32 3.1 发送或寄送一个消息 32 3.1.1 发送一个消息 32 3.1.2 寄送一个消息 32 3.1.3 发送一个消息与寄送一个消息 的比较 32 3.2 怎样使用MFC发送一个消息 33 3.3 怎样用MFC寄送一个消息 33 3.4 三种类型的消息 34 3.4.1 窗口消息 34 3.4.2 命令消息 34 3.4.3 控件通知 34 3.5 MFC怎样接收一个寄送的消息 36 3.6 MFC怎样处理一个接收到的消息 36 3.7 处理用户界面的对象 44 3.8 创建自定义窗口消息 45 3.8.1 静态分配的窗口消息 45 3.8.2 动态分配的窗口消息 46 3.9 重定向消息 47 3.9.1 子分类和超分类 47 3.9.2 用MFC子分类窗口 48 3.9.3 重载OnCmdMsg ( ) 49 3.9.4 使用SetWindowsHookEx ( ) 49 3.9.5 使用SetCapture ( ) 49 3.9.6 专有的消息泵 50 3.10 小结 50 第4章 绘图 51 4.1 设备环境 51 4.2 在MFC环境中创建一个设备环境 52 4.2.1 屏幕 52 4.2.2 打印机 53 4.2.3 内存 54 4.2.4 信息 54 4.3 绘图例程 55 4.3.1 画点 55 4.3.2 画线 55 4.3.3 画形状 55 4.3.4 形状填充和翻转 55 4.3.5 滚动 56 4.3.6 绘制文本 56 4.3.7 绘制位图和图标 56 4.4 绘图属性 56 4.4.1 设备环境属性 57 4.4.2 画线属性 58 4.4.3 形状填充属性 58 4.4.4 文本绘制属性 58 4.4.5 映像模式 59 4.4.6 调色板属性 62 4.4.7 混合属性 62 4.4.8 剪裁属性 63 4.4.9 位图绘制属性 64 4.5 元文件和路径 65 4.5.1 元文件 65 4.5.2 路径 66 4.6 颜色和调色板 66 4.6.1 抖动色 67 4.6.2 未经抖动色 67 4.6.3 系统调色板 67 4.6.4 使用系统调色板 68 4.6.5 动画色 71 4.7 控制什么时候在哪里绘图 71 4.7.1 处理WM_PAINT 71 4.7.2 只绘制被无效化的区域 72 4.7.3 处理WM_DRAWIT
实现该功能需要在对话框类中添加一个成员函数,该函数会在对话框初始化时被自动调用。您可以在该函数中添加对话框初始化时需要执行的代码。以下是一个示例: 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` 语句中执行某些操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值