我写一个SDK程序,有一个文本编辑框和两个按钮,开始的时候编辑框是允许输入的,然后用户按其中一个按钮,程序开始执行一些任务,这个时候我想禁止用户在编辑框中输入,运行过程中用户按另一个按钮则任务停止,这个时候我又想再允许用户在编辑框中输入以更改数据,请问这两个功能要用什么API函数来实现。我google了,全是讲设置什么属性,那全是在程序运行前就设置好的,我想在程序运行之中进行修改。而且大多是Dephi,VB之类的,我用的是C/C++。谢谢帮助!

解决方案 »

  1.   

    禁止编辑卡输入
    GetDlgItem(XX)->SendMessage(EM_SETREADONLY, TRUE);
    让编辑框可以接受输入
    GetDlgItem(XX)->SendMessage(EM_SETREADONLY, FALSE);
      

  2.   

    拿到窗口控件句柄
    BOOL EnableWindow(
      HWND hWnd,     // handle to window
      BOOL bEnable   // enable or disable input
    );
      

  3.   


    ::EnableWindow(::GetDlgItem(m_hWnd,IDC_EDIT/*这是你的Edit控件ID*/),TRUE);
      

  4.   

    采取这种方式可以使所有派生于CWnd的控件Enable或者Disable,当然,如果仅仅使Edit控件不能输入,采取1楼或者3楼的方法都好。
    要事控件无效(无法使用),使用:
    ::EnableWindow(::GetDlgItem(m_hWnd,IDC_EDIT/*这是你的Edit控件ID*/),FALSE);
      

  5.   

    (CEdit*)GetDlgItem(IDC_XX)->EnableWindow(FALSE);(CEdit*)GetDlgItem(IDC_XX)->EnableWindow(TRUE);