void CUserInfoDlg::OnOK()
{
int PassWord;
int Group;
int nItem;
char strPassWord[ SIZE ];
char strGroup[ SIZE ];
char UserName[ SIZE ];
InitLnList( m_list,SIZE ); //初始化表
nItem = m_userinfolist.GetItemCount(); //获取list控件中的项数
for( int i = 0; i < nItem; i++ )
{
NC_USERINFO UserInfo; //接收list控件信息的结构体
CString strTemp;
m_userinfolist.GetItemText( i,0,UserName,strlen( UserName ));
m_userinfolist.GetItemText( i,1,strPassWord,strlen( strPassWord ));
m_userinfolist.GetItemText( i,2,strGroup,strlen( strGroup ));
PassWord = atoi( strPassWord );
strTemp = strGroup;
if ( strTemp == "超级用户" )
{
Group =1;
}
else if ( strTemp == "普通用户")
{
Group = 0;
}
strcpy( UserInfo.UserName,UserName );
UserInfo.Password = PassWord;
UserInfo.Group = Group;
TailInsLnList( m_list, UserInfo ); //从表尾端插入用户信息结构体
}
CDialog::OnOK();
}
这个函数的作用是将list控件中的数据读出并逐一加入到线性表中,获取第一行信息并加入表没有问题,获取第二行时,UserName和strPassWord获取总是失败,而strGroup正常,请指教,先谢过。(list控件是Report的,获取失败的前两项信息是通过EditBox加入list控件,strGroup要获取的信息是通过combox加入list控件的)。
{
int PassWord;
int Group;
int nItem;
char strPassWord[ SIZE ];
char strGroup[ SIZE ];
char UserName[ SIZE ];
InitLnList( m_list,SIZE ); //初始化表
nItem = m_userinfolist.GetItemCount(); //获取list控件中的项数
for( int i = 0; i < nItem; i++ )
{
NC_USERINFO UserInfo; //接收list控件信息的结构体
CString strTemp;
m_userinfolist.GetItemText( i,0,UserName,strlen( UserName ));
m_userinfolist.GetItemText( i,1,strPassWord,strlen( strPassWord ));
m_userinfolist.GetItemText( i,2,strGroup,strlen( strGroup ));
PassWord = atoi( strPassWord );
strTemp = strGroup;
if ( strTemp == "超级用户" )
{
Group =1;
}
else if ( strTemp == "普通用户")
{
Group = 0;
}
strcpy( UserInfo.UserName,UserName );
UserInfo.Password = PassWord;
UserInfo.Group = Group;
TailInsLnList( m_list, UserInfo ); //从表尾端插入用户信息结构体
}
CDialog::OnOK();
}
这个函数的作用是将list控件中的数据读出并逐一加入到线性表中,获取第一行信息并加入表没有问题,获取第二行时,UserName和strPassWord获取总是失败,而strGroup正常,请指教,先谢过。(list控件是Report的,获取失败的前两项信息是通过EditBox加入list控件,strGroup要获取的信息是通过combox加入list控件的)。
解决方案 »
- 超级白板模块下载
- 怎么实现把程序里读到数据显示到编辑框里
- 做过Acrobat Reader 插件开发的朋友进来看看!!
- VC编写进程内组件时的输入输出参数怎么设置?我怎么都写不对?
- MatCom与VC集成的问题(Matlab6.5+MatCom4.5)
- 我有两个TOOLBAR,如何让它们DOCK在同一行上面?
- CToolTipCtrl tip为什么有时间出不来??、
- 如何打开进程的精彩问题:
- 如何以一个类里的成员函数做线程主函数?另,使用的时候如何使用?
- 各位大侠,我用winsock下载文件,我传送以下命令但下载的文件总不对,否帮我看看
- 在对话框中怎样显示调试信息
- CListCtrl 查询问题?急求,各位大侠帮帮忙!
strlen是以0为结束符,计算字符串的长度。
第一次循环时,UserName等没初始化,strlen(UserName)的运算结果不小于UserName的长度。
第二次循环时,UserName有值了,这时strlen(UserName)的结果可能会比需要的小。使用sizeof(UserName)