很奇怪,用crichedit的findtext,
FINDTEXT ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "mn"
CRichEditCtrl aa;
long lPos = aa.FindText(FR_MATCHCASE|FR_WHOLEWORD, &ft);
编译出错,error C2039: 'FindTextA' : is not a member of 'CRichEditCtrl'
d:\program files\microsoft visual studio\vc98\mfc\include\afxcmn.h(1012) : see declaration of 'CRichEditCtrl'
奇怪了,怎么我的FindText就成了FindTextA了呢?这里怎么会有个宏替换了呢?
FINDTEXT ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "mn"
CRichEditCtrl aa;
long lPos = aa.FindText(FR_MATCHCASE|FR_WHOLEWORD, &ft);
编译出错,error C2039: 'FindTextA' : is not a member of 'CRichEditCtrl'
d:\program files\microsoft visual studio\vc98\mfc\include\afxcmn.h(1012) : see declaration of 'CRichEditCtrl'
奇怪了,怎么我的FindText就成了FindTextA了呢?这里怎么会有个宏替换了呢?
#ifdef UNICODE
#define FINDTEXT FINDTEXTW
#else
#define FINDTEXT FINDTEXTA //的确被替换了
#endif /* UNICODE */
#else
#define FINDTEXT FINDTEXTA
#endif /* _RICHEDIT_VER >= 0x0200 */
FINDTEXTEX ft; //只改动了这里
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "mn";
long lPos = m_richedit.FindText(FR_MATCHCASE|FR_WHOLEWORD, &ft);上面的代码经测试过OK。
---------------------------------------------
if (_RICHEDIT_VER >= 0x0200)
#ifdef UNICODE //如果你的工程支持UNICODE的话
#define FINDTEXT FINDTEXTW //把FINDTEXT替换成FINDTEXTW
#else //否则的话(不支持UNICODE)
#define FINDTEXT FINDTEXTA //把FINDTEXT替换成FINDTEXTA
#endif /* UNICODE */
#else
#define FINDTEXT FINDTEXTA //如果你的工程不支持UNICODE,且RICHEDIT版本又低于0x0200,就把FINDTEXT替换成FINDTEXTA
#endif /* _RICHEDIT_VER >= 0x0200 */
#ifdef UNICODE
#define FindText FindTextW
#else
#define FindText FindTextA
#endif // !UNICODE
HWND APIENTRY FindTextA(LPFINDREPLACEA);
HWND APIENTRY FindTextW(LPFINDREPLACEW);
#ifdef UNICODE
#define FindText FindTextW
#else
#define FindText FindTextA
#endif // !UNICODE
在richedit.h中有这么一段
#if (_RICHEDIT_VER >= 0x0200)
#ifdef UNICODE
#define FINDTEXTEX FINDTEXTEXW
#else
#define FINDTEXTEX FINDTEXTEXA
#endif /* UNICODE */
#else
#define FINDTEXTEX FINDTEXTEXA
#endif /* _RICHEDIT_VER >= 0x0200 */
按道理有这两个头文件,aa.FindText就应该自动被转换成aa.FindTextA了,现在奇怪的就是为什么会出这个错误提示,有点像CListCtrl的class member没有“知道”FindText函数已经变成了FindTextA。
……
我自己都给自己绕晕了,不知道楼上的大哥又没有明白,汗……
------------------------------------------------
这个没影响的。我的机器系统XP(sp1),VC++6.0下无任何错误或警告。