1.你要新建一个MFC ActiveX Control Wizard的项目,然后从CEdit派生出来做你要做的那个edit control, 当这个项目编译生成成功之后,这个control就可以在vc中就可以在insert activex control的菜单中找到了2. 你在vc中也可以使用DataGrid, 也可以添加列,你再试试

解决方案 »

  1.   

    1.自己写一个继承CEdit类的扩展类,不必像加一个ActiveX那样。
    比如对话框上已经有添加了一个CEdit而且已经为这个CEdit映射了实例
    CEdit m_ctrlEdit;只要你把CEdit改成你写的扩展类就可以实现你想实现的
      

  2.   

    1. 自己写个扩展类
    2. DataGrid和VB区别不大,可以添加列
      

  3.   

    如果不是用MFC的话,也可以像 GJA106(中文字符)说的那样,然后得到在模板中建立的CEdit控件对象,用得到其位置,再将其删除,在其位置上创建自己的扩展类控件。
      

  4.   

    HBRUSH CCtrlColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    if(pWnd->m_hWnd==m_Edit1Ctl.m_hWnd)
    {
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(Red,0,255));
    hbr=CreateSolidBrush(RGB(200,200,255));
    return hbr;
    }
    if(pWnd->m_hWnd==m_Edit2Ctl.m_hWnd)
    {
    pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(255,255,255));
    hbr=CreateSolidBrush(RGB(0,0,0));
    return hbr;
    } // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  5.   

    回答你的第一个问题吧,呵呵,这个问题我以前学习VC的时候也遇到过。当然你可以在OnCtlColor中进行操作,而只要对参数进行判断就可以准确的操作你需要改变的对象,而不是把所有的都改了。或者你直接创建一个继承于CEdit的类,这是一种比较正规的面向对象的方法,呵呵,如果你要原代码,我有时间可以贴一个
      

  6.   

    我找了老半天不知道怎么加DataGrid,用过得人能不能大概提示一下!
      

  7.   

    对于你的问题:1。 当你使用菜单Insert /New Class...插入一个类时,你可以选择继承于CEdit类。 然后当你在Dialog上放置一个 编辑框控件后, 利用ClassWizard为这个控件生成一个变量,生成变量时,你选择Category为Control,然后你在Variable type下拉框中就会发现有两个选项了,其中一个就是你的新产生的类,选择这个新类为你控件对应的变量的类型即可。2。在Dialog上点击右键,选择Insert ActiveX Control...,在出现的列表中选择Microsoft FlexGrid Control, version 6.0将 FlexGrid控件加入到你的对话框上。在控件上点击右键,选择Properties,修改控件各种属性。
        不过需要提醒的是,可能这个控件在VC中并不如你在VB中用起来那么得心应手。
      

  8.   


    void CWbwzView::OnTimer(UINT nIDEvent) 
    {
    CRecordView::OnTimer(nIDEvent);
    }
    void CWbwzView::OnDatasave() 
    {
    char temptchar[6];
    if (!m_pSet->IsEOF())
    {
    m_pSet->MoveLast();
    }
    for (int i=0;i<=10;i++)
    {
    UpdateData(true);
    m_pSet->AddNew();
    m_pSet->SetFieldNull(NULL);

    memset(temptchar,0,6);
    gcvt(Data[i],6,temptchar);
    m_pSet->m_T_date=temptchar; //经历时间 memset(temptchar,0,6);
    gcvt(i,2,temptchar);
    m_pSet->m_T_memo1=temptchar; //序号

    memset(temptchar,0,6);
    CString t_No;
    m_strStartNo.GetWindowText(t_No); //编号
    m_pSet->m_T_No=t_No;// m_pSet->m_T_specification= //产品规格
    // m_pSet->m_T_Ispecification= //电流规格
    // m_pSet->m_T_Ibreak= //实际断开电流
    // m //合格
    }
    }
      

  9.   

    void CWbwzView::OnDatasave() 
    {
    char temptchar[6];
    if (!m_pSet->IsEOF())
    {
    m_pSet->MoveLast();
    }
    for (int i=0;i<=10;i++)
    {
    UpdateData(true);
    m_pSet->AddNew();
    m_pSet->SetFieldNull(NULL);

    memset(temptchar,0,6);
    gcvt(Data[i],6,temptchar);
    m_pSet->m_T_date=temptchar; //经历时间 memset(temptchar,0,6);
    gcvt(i,2,temptchar);
    m_pSet->m_T_memo1=temptchar; //序号

    memset(temptchar,0,6);
    CString t_No;
    m_strStartNo.GetWindowText(t_No); //编号
    m_pSet->m_T_No=t_No;// m_pSet->m_T_specification= //产品规格
    // m_pSet->m_T_Ispecification= //电流规格
    // m_pSet->m_T_Ibreak= //实际断开电流
    // m //合格
    }
    }