哪位能帮我看看这段代码 为什么不能完成数据更新

ninijungle 2009-09-01 05:42:30
void CTongxunluView::OnRewrite()
{
// TODO: Add your control notification handler code here
CString s;
m_pSet->MoveFirst();
CDlg_name dlg;
if(dlg.DoModal()==IDOK)
{
int i=0,flag=0;
//Deleteall();// 清空原来列表
while (!m_pSet->IsEOF())
{
if (m_pSet->m_column2==dlg.m_Name)
{
flag=1;
CAdd add;
add.m_name=m_pSet->m_column2;
add.m_shouji=m_pSet->m_column3;
add.m_tel=m_pSet->m_column4;
add.m_email=m_pSet->m_e_mail;
add.m_addr=m_pSet->m_column5;
add.m_code=m_pSet->m_column6;
add.m_fenzu=m_pSet->m_column7;
add.m_note=m_pSet->m_column8;
s.Format("%s",m_pSet->m_column4);
if(add.DoModal()==IDOK)
{
UpdateData(TRUE);
m_Record_List.GetWindowText(m_pSet->m_column2);
m_Record_List.SetItemText(i,1,add.m_name);
m_Record_List.SetItemText(i,1,add.m_shouji);
m_Record_List.SetItemText(i,2,add.m_tel);
m_Record_List.SetItemText(i,3,add.m_email);
m_Record_List.SetItemText(i,4,add.m_addr);
m_Record_List.SetItemText(i,5,add.m_code);
m_Record_List.SetItemText(i,6,add.m_fenzu);
m_Record_List.SetItemText(i,7,add.m_note);
// s.Format("%s",m_pSet->m_column2);
// m_Record_List.SetItemText(i,0,s);
}

}
i++;
m_pSet->MoveNext();
}
if(flag==0)MessageBox("您的通讯录中没有此人信息!请核对~");
}
...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ninijungle 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 oyljerry 的回复:]
引用 5 楼 ninijungle 的回复:
4楼的方法 好像不太好使 我之前也在网上查过 试过这种方法 单单是m_edit是不能调用EnableWindow这个函数的 只有这个对话框类能调用 但是CXX dlg; dlg.EnableWindow(false)后会在运行时出错 。。。


你可以得到对话框的句柄,然后发送消息给对话框等来EnableWindow,不能直接调用dlg
[/Quote]


这个。。。能不能说具体点 我有点不太理解。。初学。。很多不会用的。。。
huziwu 2009-09-02
  • 打赏
  • 举报
回复
m_Record_List.EnableWindow(false)应该有的
或用
GetDlgItem(CTRLID)->EnableWindow(false);//CTRLID为对应的控件ID
oyljerry 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ninijungle 的回复:]
4楼的方法 好像不太好使 我之前也在网上查过 试过这种方法 单单是m_edit是不能调用EnableWindow这个函数的 只有这个对话框类能调用 但是CXX dlg; dlg.EnableWindow(false)后会在运行时出错 。。。

[/Quote]
你可以得到对话框的句柄,然后发送消息给对话框等来EnableWindow,不能直接调用dlg
ninijungle 2009-09-02
  • 打赏
  • 举报
回复
3楼的方法试了一下啊 在列表中可以显示记录 不过是增加了一条。。而且刷新后记录就不见了 应该是对数据库没有更新。。。
ninijungle 2009-09-02
  • 打赏
  • 举报
回复
4楼的方法 好像不太好使 我之前也在网上查过 试过这种方法 单单是m_edit是不能调用EnableWindow这个函数的 只有这个对话框类能调用 但是CXX dlg; dlg.EnableWindow(false)后会在运行时出错 。。。
dirdirdir3 2009-09-01
  • 打赏
  • 举报
回复
编辑控件为m_edit,则m_edit->EnableWindow(false);
feilinhe 2009-09-01
  • 打赏
  • 举报
回复
首先

UpdateData(TRUE);
m_Record_List.GetWindowText(m_pSet->m_column2);
m_Record_List.InsertItem(i,_T(""));//加上这个
m_Record_List.SetItemText(i,1,add.m_name);
m_Record_List.SetItemText(i,1,add.m_shouji);
m_Record_List.SetItemText(i,2,add.m_tel);
m_Record_List.SetItemText(i,3,add.m_email);
m_Record_List.SetItemText(i,4,add.m_addr);
m_Record_List.SetItemText(i,5,add.m_code);
m_Record_List.SetItemText(i,6,add.m_fenzu);
m_Record_List.SetItemText(i,7,add.m_note);
// s.Format("%s",m_pSet->m_column2);
// m_Record_List.SetItemText(i,0,s);


第二个问题在属性里设置“只读”勾上就可以了
副组长 2009-09-01
  • 打赏
  • 举报
回复

哪儿不能更新?跳出的对话框里面的初始内容吗?还是设置了以后对话框里面没有设置的新值?还是数据库记录没有更新?用UpdateData(TRUE)试一试。

编辑框变灰将属性中Disabled设置为TRUE就可以了。
ninijungle 2009-09-01
  • 打赏
  • 举报
回复
唔~我还想问个问题。。
怎么能把跳出的对话框变为只读呢?就是编辑框变灰。。。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧