MFC1、动态创建CButton
来源:互联网 发布:坚持 知乎 编辑:程序博客网 时间:2024/05/22 05:21
源码下载 :http://download.csdn.net/detail/u010261063/9507552
1、打开资源文件String table文件添加IDC_MYBUTTON字符串资源caption一定要写控件的标题和注解:
2、在头文件生命指针:CButton *mp_mybutton
<span style="font-size:18px;">class CDBNDlg : public CDialog{// Constructionpublic:CDBNDlg(CWnd* pParent = NULL);// standard constructor// Dialog Data//{{AFX_DATA(CDBNDlg)enum { IDD = IDD_DBN_DIALOG };// NOTE: the ClassWizard will add data members here//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CDBNDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected:HICON m_hIcon;CButton m_btn; // 定义一个按钮对象<strong>CButton *mp_mybutton;</strong>// Generated message map functions//{{AFX_MSG(CDBNDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();//}}AFX_MSG<strong>afx_msg void OnBtnClick(); //声明一个消息处理函数</strong>DECLARE_MESSAGE_MAP()};</span>
3、采用 mp_mybutton = new CButton();
<span style="font-size:18px;">BOOL CDBNDlg::OnInitDialog(){CDialog::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){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}SetIcon(m_hIcon, TRUE);// Set big iconSetIcon(m_hIcon, FALSE);// Set small icon// TODO: Add extra initialization here// 动态创建一个按钮<strong>RECT rect;mp_mybutton = new CButton();rect.top = 10;rect.left = 10;rect.right =100;rect.bottom = 50;mp_mybutton->Create("CH",WS_CHILD|WS_VISIBLE|WS_BORDER|BS_PUSHBOX,rect,this,IDS_MYBUTTON);</strong>return TRUE; // return TRUE unless you set the focus to a control}</span>
5,声明消息处理函数
6、定义消息处理
<span style="font-size:18px;">void CDBNDlg::OnBtnClick(){// 响应单击按钮MessageBox("点击了我!!");}</span>
函数
<span style="font-size:18px;">BEGIN_MESSAGE_MAP(CDBNDlg, CDialog)//{{AFX_MSG_MAP(CDBNDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAP<strong>ON_BN_CLICKED(IDS_MYBUTTON,OnBtnClick) //在此加入消息映射宏</strong>END_MESSAGE_MAP()</span>
注:
创建Windows按钮控件并将它附加到 CButton 对象。
语法
virtual BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
参数
- lpszCaption
指定按钮控件的文本。
- dwStyle
指定按钮控件的样式。适用于 按钮样式 的任意组合按钮。
- rect
指定按钮控件的大小和位置。它可以是 CRect 对象或 RECT 结构。
- pParentWnd
指定按钮控件的父窗口,通常 CDialog。不能为 NULL。
- nID
指定按钮控件的ID.
返回值
如果成功,非零;否则为0。
备注
在构造在两个步骤的一 CButton 对象。首先,调用构造函数然后调用 Create,创建Windows按钮控件并将它附加到 CButton 对象。
如果给定 WS_VISIBLE 样式,Windows发送按钮控件所需的所有信息激活和显示按钮。
将以下 窗口样式 于按钮控件:
始终WS_CHILD
通常WS_VISIBLE
少见WS_DISABLED
对控件分组的WS_GROUP
包含按钮的WS_TABSTOP 按tab键顺序
CButton myButton1, myButton2, myButton3, myButton4;// Create a push button.myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), pParentWnd, 1);// Create a radio button.myButton2.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON, CRect(10,40,100,70), pParentWnd, 2);// Create an auto 3-state button.myButton3.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_AUTO3STATE, CRect(10,70,100,100), pParentWnd, 3);// Create an auto check box.myButton4.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX, CRect(10,100,100,130), pParentWnd, 4);
0 0
- MFC1、动态创建CButton
- Cbutton动态创建
- MFC下动态创建CButton
- VC动态创建控件之CButton类
- VC动态创建控件之CButton类
- MFC动态创建CButton控件显示不正常
- VC动态创建控件之CButton类
- MFC1
- 动态创建一个CButton按钮并实现其ON_BN_CLICKED消息
- MFC创建控件--CButton
- 如何创建按钮CButton
- 对话框和MDI中动态创建按钮CButton,并响应事件
- 对话框和MDI中动态创建按钮CButton,并响应事件
- 动态创建的CButton按钮,在设置字体时为什么不显示
- CButton
- CButton
- cbutton
- 利用Cbutton创建Tab功能Tab页
- Access数据库的学习记录
- tomcat log日志详解
- 织梦批量修改属性
- 浅谈Android支付宝快捷支付
- php获取指定日期的一周开始及结束日期,支持一周是从周几开始
- MFC1、动态创建CButton
- OS X 上安装mysql
- Java死锁示例及检测
- Java中的Map集合详解
- 使用开源库zlib压缩和解压文件
- bsoj 2684 【CEOI2004】锯木厂选址
- LeetCode 343. Integer Break(整数分拆)
- yum mysql
- 织梦DedeCms批量提取第一张图片为缩略图