• 九、MFC控件(一)


    一、控件的使用

    1、对象和对象的绑定

    (1)作用

            如果控件和数据类(如:CString)的对象绑定,对象可以和控件进行数据交换

            如果控件和控件类(如:CButton)对象绑定,对象可以代表控件

    2、控件与数据类型对象绑定的使用

    (1)数据类型对象和控件可以实现数据交互

    (2)重写父类的成员虚函数DoDataExchange

            在函数内部通过一系列的DDC_xxx函数,实现控件和数据类型对象的数据交互

    (3)如果需要实现数据交互,调用UpdateData函数

            UpdateData(TRUE):控件-》变量

            UpdateData(FALSE):变量-》控件

    2、创建解决方案,实现数据类型和控件绑定

    (1)拷贝模式对话框项目(MFCModelDlg)

    (2)在对话框资源中添加一个Edit Control控件和两个Button

    (3) 编写程序

    1. #include
    2. #include "resource.h"
    3. class CMyDlg : public CDialog{
    4. public:
    5. DECLARE_MESSAGE_MAP( )
    6. enum{IDD=IDD_DIALOG1};
    7. public:
    8. afx_msg void OnOK();
    9. afx_msg void OnButton1();
    10. afx_msg void OnButton2();
    11. CMyDlg() : CDialog(IDD){
    12. }
    13. virtual void DoDataExchange(CDataExchange* pDX);
    14. public:
    15. CString m_strEdit;
    16. };
    17. BEGIN_MESSAGE_MAP( CMyDlg, CDialog )
    18. ON_COMMAND( IDOK, OnOK )
    19. ON_COMMAND(IDC_BUTTON1, OnButton1)
    20. ON_COMMAND(IDC_BUTTON2, OnButton2)
    21. END_MESSAGE_MAP( )
    22. void CMyDlg::OnOK( ){
    23. CDialog::OnOK();
    24. }
    25. void CMyDlg::DoDataExchange(CDataExchange* pDX)
    26. {
    27. DDX_Text(pDX, IDC_EDIT1, m_strEdit);
    28. }
    29. void CMyDlg::OnButton1() //控件-》变量
    30. {
    31. UpdateData(TRUE);
    32. AfxMessageBox(m_strEdit);
    33. }
    34. void CMyDlg::OnButton2() //变量-》数据
    35. {
    36. m_strEdit = "hello word";
    37. UpdateData(FALSE);
    38. }
    39. class CMyWinApp : public CWinApp{
    40. public:
    41. virtual BOOL InitInstance( );
    42. };
    43. BOOL CMyWinApp::InitInstance( ){
    44. CMyDlg dlg;//栈空间
    45. m_pMainWnd = &dlg;
    46. int nRet = dlg.DoModal( );
    47. return FALSE;//不再执行MFC库中安排的Run函数
    48. }
    49. CMyWinApp theApp;

     

     3、控件与控件类型绑定的使用

    (1)控件类型对象和控件可实现对象代表整个控件

    (2)重写父类的成员虚函数DoDataExchange

            在函数内部通过一系列的DDC_xxx函数,实现控件句柄和控件类型对象绑定

    (3)控件类型对象,代表这个控件

    4、实现控件类型对象与控件绑定

    (1)创建控件类型对象,绑定

    1. #include
    2. #include "resource.h"
    3. class CMyDlg : public CDialog{
    4. public:
    5. DECLARE_MESSAGE_MAP( )
    6. enum{IDD=IDD_DIALOG1};
    7. public:
    8. afx_msg void OnOK();
    9. afx_msg void OnButton1();
    10. afx_msg void OnButton2();
    11. CMyDlg() : CDialog(IDD){
    12. }
    13. virtual void DoDataExchange(CDataExchange* pDX);
    14. public:
    15. CString m_strEdit;
    16. CEdit m_ctrEdit;
    17. };
    18. BEGIN_MESSAGE_MAP( CMyDlg, CDialog )
    19. ON_COMMAND( IDOK, OnOK )
    20. ON_COMMAND(IDC_BUTTON1, OnButton1)
    21. ON_COMMAND(IDC_BUTTON2, OnButton2)
    22. END_MESSAGE_MAP( )
    23. void CMyDlg::OnOK( ){
    24. //CDialog::OnOK();
    25. m_ctrEdit.MoveWindow(0, 0, 200, 200);
    26. }
    27. void CMyDlg::DoDataExchange(CDataExchange* pDX)
    28. {
    29. DDX_Text(pDX, IDC_EDIT1, m_strEdit);
    30. DDX_Control(pDX, IDC_EDIT1, m_ctrEdit);
    31. }
    32. void CMyDlg::OnButton1() //控件-》变量
    33. {
    34. UpdateData(TRUE);
    35. AfxMessageBox(m_strEdit);
    36. }
    37. void CMyDlg::OnButton2() //变量-》数据
    38. {
    39. m_strEdit = "hello word";
    40. UpdateData(FALSE);
    41. }
    42. class CMyWinApp : public CWinApp{
    43. public:
    44. virtual BOOL InitInstance( );
    45. };
    46. BOOL CMyWinApp::InitInstance( ){
    47. CMyDlg dlg;//栈空间
    48. m_pMainWnd = &dlg;
    49. int nRet = dlg.DoModal( );
    50. return FALSE;//不再执行MFC库中安排的Run函数
    51. }
    52. CMyWinApp theApp;

             操作控件类型对象,会直接将改变传递到与之绑定的控件

    5、控件消息的处理

    (1)空间消息的处理

            WM_COMMAND消息

                    LOWORD(wParam) 低字       菜单项ID,控件ID

                    HIWAORD(wParam) 高字      菜单项,为0

                                                                   控件,通知码(控件发生的事情,单、双击等)

                    lParam        均无用

    1. //处理消息,处理通知码为 CN_COMMAND=0,BN_CLICKED=0,所以会处理单击
    2. ON_COMMAND(IDC_BUTTON1, OnButton1)
    3. //处理单击消息
    4. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    5. //处理双击消息
    6. ON_BN_DOUBLECLICKED(IDC_BUTTON1, OnButton1)
    1. ON_BN_CLICKED( IDOK, OnOK )
    2. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    3. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)

    (2)设置按钮属性(允许双击)

    (3)编写程序

    1. #include
    2. #include "resource.h"
    3. class CMyDlg : public CDialog{
    4. public:
    5. DECLARE_MESSAGE_MAP( )
    6. enum{IDD=IDD_DIALOG1};
    7. public:
    8. afx_msg void OnOK();
    9. afx_msg void OnButton1();
    10. afx_msg void OnButton2();
    11. afx_msg void OnDbButton2();
    12. CMyDlg() : CDialog(IDD){
    13. }
    14. virtual void DoDataExchange(CDataExchange* pDX);
    15. public:
    16. CString m_strEdit;
    17. CEdit m_ctrEdit;
    18. };
    19. BEGIN_MESSAGE_MAP( CMyDlg, CDialog )
    20. ON_BN_CLICKED( IDOK, OnOK )
    21. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
    22. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
    23. ON_BN_DOUBLECLICKED(IDC_BUTTON2, OnDbButton2)
    24. END_MESSAGE_MAP( )
    25. void CMyDlg::OnOK( ){
    26. //CDialog::OnOK();
    27. m_ctrEdit.MoveWindow(0, 0, 200, 200);
    28. }
    29. void CMyDlg::DoDataExchange(CDataExchange* pDX)
    30. {
    31. DDX_Text(pDX, IDC_EDIT1, m_strEdit);
    32. DDX_Control(pDX, IDC_EDIT1, m_ctrEdit);
    33. }
    34. void CMyDlg::OnButton1() //控件-》变量
    35. {
    36. UpdateData(TRUE);
    37. AfxMessageBox(m_strEdit);
    38. }
    39. void CMyDlg::OnButton2() //变量-》数据
    40. {
    41. m_strEdit = "hello word";
    42. UpdateData(FALSE);
    43. }
    44. void CMyDlg::OnDbButton2()
    45. {
    46. m_strEdit = "你好";
    47. UpdateData(FALSE);
    48. }
    49. class CMyWinApp : public CWinApp{
    50. public:
    51. virtual BOOL InitInstance( );
    52. };
    53. BOOL CMyWinApp::InitInstance( ){
    54. CMyDlg dlg;//栈空间
    55. m_pMainWnd = &dlg;
    56. int nRet = dlg.DoModal( );
    57. return FALSE;//不再执行MFC库中安排的Run函数
    58. }
    59. CMyWinApp theApp;

     二、基本控件

    1、创建对话框项目

    (1)使用向导创建对话框项目(MFCDlgWizard)

    2、控件使用

    (1)控件与数据类型对象绑定(做数据交换)

    (2)控件与控件类型对象绑定(对象代表控件,通过操作控件类型对象控制控件)

    (3)处理控件消息

    三、下压式按钮

    1、使用相关

    (1)相关类

            CButton类, 父类为CWnd,封装了关于下压式按钮控件的各种操作

    (2)消息

            当下压式按钮被单击

                    WM_COMMAND消息(通知码BN_CLICKED)

    2、下压式按钮与控件类对象绑定

    (1)添加按钮(从工具箱中拖拽,Button控件)

     (2)右键属性,Caption为按钮显示名称

    (3)使用类向导添加按钮绑定变量,双击IDC_BUTTON1

     

     (4)在初始化函数(CMFCDlgWizardDlg::OnInitDialog())中通过按钮绑定控件类对象,操作控件

    1. BOOL CMFCDlgWizardDlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. m_btn.MoveWindow(0,0,100,100);
    11. m_btn.SetWindowText("btn");
    12. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    13. }

     3、添加按钮消息处理函数

    (1)使用类向导添加消息处理函数

     

     (2)在消息处理函数中添加按钮被点击之后的工作

    四、编辑框

    1、编辑框使用

    (1)相关类

            CEdit类:父类为CWnd,封装了关于编辑框控件的各种操作

    (2)常见操作

            获得编辑框文本内容

            设置编辑框文本内容

    (3)消息

            当前编辑框文本内容发生变化

                    WM_COMMAND消息(通知码EN_CHANGE)

    2、编辑框与控件类对象绑定

    (1)添加编辑框(从工具箱拖拽 Edit Control),ID为IDC_EDIT1

    (2)使用类向导添加绑定的控件类对象

     (3)在按钮消息处理函数添加编辑框内容获取程序,当按钮被点击时获取编辑框内容

    1. void CMFCDlgWizardDlg::OnClickedButton1()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. //AfxMessageBox("按钮被点击");
    5. CString strEdit;
    6. m_edit.GetWindowText(strEdit);
    7. AfxMessageBox(strEdit);
    8. }

     (4)在初始化函数中设置编辑框内容

    1. BOOL CMFCDlgWizardDlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. m_btn.MoveWindow(0,0,100,100);
    11. m_btn.SetWindowText("btn");
    12. m_edit.SetWindowText("你好");
    13. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    14. }

    (5)使用类向导给编辑框绑定数据类对象

     

     

     (6)通过数据类对象交互数据

    1. BOOL CMFCDlgWizardDlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. m_btn.MoveWindow(0,0,100,100);
    11. m_btn.SetWindowText("btn");
    12. //m_edit.SetWindowText("你好");
    13. m_strEdit = "你好";
    14. UpdateData(FALSE);
    15. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    16. }

     3、编辑框消息处理函数(编辑框内容修改)

    (1)使用类向导添加编辑框消息处理函数

     (2)在消息处理函数编修内容;当编辑框内容发生修改时,会将按钮名称设置为编辑框内容

    1. void CMFCDlgWizardDlg::OnChangeEdit1()
    2. {
    3. CString strEdit;
    4. m_edit.GetWindowText(strEdit);
    5. m_btn.SetWindowText(strEdit);
    6. }

    五、复选框按钮

    1、复选框使用

    (1)相关类

            CButton类,父类CWnd,封装了允许复选框按钮控件的各种操作

    (2)常见操作

            获取复选框状态

                    CButton::GetCheck

            设置复选框状态

                    CButton::SetCheck

    (3)消息

            当被选中

                    WM_COMMAND消息(通知码BN_CLICKED)

    2、绑定控件类对象

    (1)使用类向导创建绑定对象

     (2)在初始化函数设置复选框状态

    1. BOOL CMFCCtrl2Dlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. m_check1.SetCheck(TRUE);
    11. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    12. }

     3、添加复选框消息处理函数

    1. void CMFCCtrl2Dlg::OnClickedCheck1()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. bool status = m_check1.GetCheck();
    5. if (status)
    6. {
    7. AfxMessageBox("TRUE");
    8. }
    9. else
    10. {
    11. AfxMessageBox("FALSE");
    12. }
    13. }

    4、复选框属性, 将Push Like切换为True,复选框变为点击转换的按钮

    六、 单选框按钮

    1、单选框使用

    (1)相关类

            CButton类,父类为CWnd,封装了有关单选框按控件的操作

    (2)常见操作        

            获取复选框状态

                    CButton::GetCheck

            设置复选框状态

                    CButton::SetCheck

    (3)消息

            当被选中

                    WM_COMMAND消息(通知码BN_CLICKED)

    2、添加单选框绑定控件类对象

    (1)添加两个单选框(从工具箱拖拽 Radio Button)

    (2)修改复选框属性(Group:True)单选框成组使用,否则类向导没有控件ID

    (3)绑定控件类对象

     3、添加单选框消息处理函数

    (1)添加消息处理函数

     (2)在消息处理函数设置单选框互斥性

    1. void CMFCCtrl2Dlg::OnClickedRadio1()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. m_r1.SetCheck(TRUE);
    5. m_r2.SetCheck(FALSE);
    6. }
    7. void CMFCCtrl2Dlg::OnClickedRadio2()
    8. {
    9. // TODO: 在此添加控件通知处理程序代码
    10. m_r1.SetCheck(FALSE);
    11. m_r2.SetCheck(TRUE);
    12. }

    七、分组框按钮

            控件的分组显示

    1、添加分组框

    (1)添加分组框(从工具箱拖拽 Group Box)

     八、文本静态框

            文本提示

    1、文本静态框使用

    (1)常见使用

            常用于显示字符串,提高界面友好性

            CWnd::SetWindowText

    (2)绑定对象

            CStatic

    2、绑定控件类对象

    (1)添加文本静态框(从工具箱拖拽 Static Text)

    (2)设置控件属性

     (3)使用类向导绑定

     (4)借用单选框设置静态文本框内容

    1. void CMFCCtrl2Dlg::OnClickedRadio1()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. m_r1.SetCheck(TRUE);
    5. m_r2.SetCheck(FALSE);
    6. m_st.SetWindowText("静态文本框1==");
    7. }
    8. void CMFCCtrl2Dlg::OnClickedRadio2()
    9. {
    10. // TODO: 在此添加控件通知处理程序代码
    11. m_r1.SetCheck(FALSE);
    12. m_r2.SetCheck(TRUE);
    13. m_st.SetWindowText("静态文本框2==");
    14. }

    九、图像静态框

    1、使用

    (1)常见操作

            常用于 显示图像

                    CStatic::SetIcon / CStatic::SetBitmap

     2、图像静态框绑定控件类对象

    (1)添加图像静态框(从工具箱拖拽 Picture Control)

    (2)设置控件属性

     (3)添加位图(Bitmap)资源

     (4)选择图片

     (5)修改控件ID

     (6)使用类向导添加控件对象

     (7)借用单选框设置图像显示

    1. void CMFCCtrl2Dlg::OnClickedRadio1()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. m_r1.SetCheck(TRUE);
    5. m_r2.SetCheck(FALSE);
    6. m_st.SetWindowText("静态文本框1==");
    7. m_ps.SetBitmap(::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1)));
    8. }
    9. void CMFCCtrl2Dlg::OnClickedRadio2()
    10. {
    11. // TODO: 在此添加控件通知处理程序代码
    12. m_r1.SetCheck(FALSE);
    13. m_r2.SetCheck(TRUE);
    14. m_st.SetWindowText("静态文本框2==");
    15. m_ps.SetBitmap(::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2)));
    16. }

    十、组合框

    1、组合框介绍

    (1)相关类

            CComboBox类,父类为CWnd,封装了关于组合框控件的各种操作

    (2)常见操作

            添加选项

                    CComboBox::AddString

            删除选项

                    CComboBox::DeleteString

            获取当前选项索引

                    CComboBox::GetCurSel

            通过索引设置当前选项

                    CComboBox::SetCurSel

            获取选项文本内容

                    CComboBox::GetLBText

            设置选项附加数据

                    CComboBox::SetItemData

            获取选项附加数据

                    CComboBox::GetItemData

    (3)分类

            简单式组合框(Simple) / 下拉式组合框(Dropdown) / 下拉式列表式组合框(Drop List)

    (4)组合框消息

            当选项发生变化时

                    WM_COMMAND消息(通知码CBN_SELCHANGE)

            当文本内容发生变化时

                   WM_COMMAND消息(通知码CBN_DEITCHANGE) 

    2、创建项目

    (1)创建对话框项目(MFCCtrl3)

    (2)创建三个组合框(选中工具箱的Combo Box,在对话框框出范围)

    (3)将三个组合框的属性分别设置为Simple/Dropdown/Drop List

    (4)修改组合框ID

    (5)使用类向导给三个组合框创建绑定控件类对象

     (6)在初始化函数添加选项

    1. BOOL CMFCCtrl3Dlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. for (int i=0;i<100;i++)
    11. {
    12. CString strSimple;
    13. strSimple.Format("strSimple:%d", i);
    14. m_simple.AddString(strSimple);
    15. CString strDropDwon;
    16. strDropDwon.Format("strDropDwon:%d", i);
    17. m_dropDown.AddString(strDropDwon);
    18. CString strDropList;
    19. strDropList.Format("strDropList:%d", i);
    20. m_dropList.AddString(strDropList);
    21. }
    22. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    23. }

    (7)设置取消自动排序,将Sort设置为false

    (7)通过按钮清空选项

    1. void CMFCCtrl3Dlg::OnBnClickedClear()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. m_simple.ResetContent();
    5. m_dropDown.ResetContent();
    6. m_dropList.ResetContent();
    7. }

    (8)通过按钮实现 选项获取、设置和删除

    1. void CMFCCtrl3Dlg::OnBnClickedDelete()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. int nPos = m_simple.GetCurSel();
    5. m_simple.SetCurSel(nPos+1);
    6. m_simple.DeleteString(nPos);
    7. nPos = m_dropDown.GetCurSel();
    8. m_dropDown.SetCurSel(nPos+1);
    9. m_dropDown.DeleteString(nPos);
    10. nPos = m_dropList.GetCurSel();
    11. m_dropList.SetCurSel(nPos+1);
    12. m_dropList.DeleteString(nPos);
    13. }

    (9)通过按钮获取选项的文本内容

    1. void CMFCCtrl3Dlg::OnBnClickedGettext()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. CString str1;
    5. m_simple.GetLBText(m_simple.GetCurSel(), str1);
    6. CString str2;
    7. m_dropDown.GetLBText(m_dropDown.GetCurSel(), str2);
    8. CString str3;
    9. m_dropList.GetLBText(m_dropList.GetCurSel(), str2);
    10. AfxMessageBox(str1+str2+str3);
    11. }

     (10)在初始化函数给选项添加附加数据

    1. BOOL CMFCCtrl3Dlg::OnInitDialog()
    2. {
    3. CDialogEx::OnInitDialog();
    4. // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    5. // 执行此操作
    6. SetIcon(m_hIcon, TRUE); // 设置大图标
    7. SetIcon(m_hIcon, FALSE); // 设置小图标
    8. ShowWindow(SW_MINIMIZE);
    9. // TODO: 在此添加额外的初始化代码
    10. for (int i=0;i<100;i++)
    11. {
    12. CString strSimple;
    13. strSimple.Format("strSimple:%d", i);
    14. m_simple.AddString(strSimple);
    15. m_simple.SetItemData(i, i+1000); //添加附加数据
    16. CString strDropDwon;
    17. strDropDwon.Format("strDropDwon:%d", i);
    18. m_dropDown.AddString(strDropDwon);
    19. m_dropDown.SetItemData(i, i+1000); //添加附加数据
    20. CString strDropList;
    21. strDropList.Format("strDropList:%d", i);
    22. m_dropList.AddString(strDropList);
    23. m_dropList.SetItemData(i, i+1000); //添加附加数据
    24. }
    25. return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    26. }

    (11)通过按钮获取附加数据

    1. void CMFCCtrl3Dlg::OnBnClickedGetdata()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. DWORD nData = m_simple.GetItemData(m_simple.GetCurSel());
    5. CString str;
    6. str.Format("%d", nData);
    7. AfxMessageBox(str);
    8. }

    (12)通过类向导添加组合框消息处理函数

    1. void CMFCCtrl3Dlg::OnSelchangeSimple()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. int nPos = m_simple.GetCurSel();
    5. m_dropDown.SetCurSel(nPos);
    6. m_dropList.SetCurSel(nPos);
    7. }
    1. void CMFCCtrl3Dlg::OnEditchangeSimple()
    2. {
    3. // TODO: 在此添加控件通知处理程序代码
    4. AfxMessageBox("内容被修改");
    5. }

     十一、列表框

    1、介绍

    (1)相关类

            CListBox类,父类为CWnd,封装了关于列表框控件的操作

    (2)常见操作

            添加选项

                    CListBox::AddString

            删除选项

                    CListBox::DeleteString

            获取当前选项

                    CListBox::GetCurSel       

            通过索引设置当前选项

                    CComboBox::SetCurSel

            获取选项文本内容

                    CComboBox::GetItemText

            设置选项附加数据

                    CComboBox::SetItemData

            获取选项附加数据

                    CComboBox::GetItemData

    (3)工具箱中的控件名称为 List Box

  • 相关阅读:
    python 中的元类
    【Rust】快速教程——闭包与生命周期
    MySQL知识总结 (十) 一条 SQL 的执行过程详解
    Win11如何添加默认打印机?
    Pandas 数据中的loc与iloc含义以及操作
    工程文档管理——有效控制工程项目范围、进度,实现高效的审查、批准和生产流程
    Spring Boot 应用的热部署配置
    【无标题】
    修改docker默认存储位置【高版本的docker】
    tomcat
  • 原文地址:https://blog.csdn.net/liutit/article/details/126147924