我自定义一个函数,以CString类作为参数,例如lookfor(CString test)。在函数内部我对CString类的Find函数使用如下判断
if (str.Find(test)!=-1)
{
}
else
{
}不管str字符串是否包含test字串,结果都是执行else内的代码。是不是Find函数只能接受常数字符串而不能接受变量字符串?
if (str.Find(test)!=-1)
{
}
else
{
}不管str字符串是否包含test字串,结果都是执行else内的代码。是不是Find函数只能接受常数字符串而不能接受变量字符串?
解决方案 »
- win7 下用gdi+写文字, 在操作系统改成大字体后文字会变大, 如何让它不变?
- 校园网安装一个Socket服务器,该在什么位置?
- 这个关于魔方旋转的思想,我该怎么实现?
- 100分请教一个求取文件大小的小问题,谢谢解答!
- 高深的问题,小弟不明白,关于线程参数:UP有分
- 串口通信的问题
- 请问可以从HBITMAP中直接保存为一个bmp文件吗?
- 如何改变CTreeCtrl控件的背景?急需源码。一定给分。
- 关于WNetAddConnection2函数的用法
- 十万火急!!!Bitmap控件对鼠标点击消息的响应 & 关于CDialogBar中的自绘按钮!!!
- 知道了线程id如何得知他所在的模块呢??
- guideline must specify type什么意思啊
常量串和变量都可以的,不知是怎么实现的?
函数定义:
void lookfor(CString test)
{
CString cs =_T("test"); if (cs.Find(test)!=-1)
{
AfxMessageBox(_T("ok"));
}
else
{
AfxMessageBox(_T("nook"));
}
}
调用void CMFCDialogDlg::OnButton1()
{ CString cs="test"; lookfor(cs);}都会打出"ok".
二楼示例正确。
MSDN中函数的原型:int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;所以与常量 变量无关!
void CWenjianduquView::SetDataPermission(CString data)
{
POSITION pos;
CString attribute;
CGangCaiData* gangcaidata;
pos=GetDocument()->m_gangcaidatalist.GetHeadPosition();
gangcaidata=GetDocument()->m_gangcaidatalist.GetAt(pos);
attribute=gangcaidata->GetBeiZhu();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetPinMing();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetCaiZhi();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetGuiGe();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetGangChang();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
while (pos!=NULL)
{
gangcaidata=GetDocument()->m_gangcaidatalist.GetNext(pos);
attribute=gangcaidata->GetBeiZhu();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetPinMing();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetCaiZhi();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetGuiGe();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
attribute=gangcaidata->GetGangChang();
if (attribute.Find(data)!=-1)
gangcaidata->SetPermission(TRUE);
else
gangcaidata->SetPermission(FALSE);
}
}下面是对编辑框内容动态改变的处理代码
void CWenjianduquView::OnChangeCaizhi()
{
CString str;
m_caizhi.GetWindowText(str);
SetDataPermission(str);
CtreeCtrlShow();
}
m_caizhi是一个CEdit的变量