我有一个CStringArray saUnit,里面若有10个字串,现在我取一个出来,用
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);写入到记事本中,我后面的数据都用这样的方式写入,写一个换一行,如何来实现这样的功能,我像下面这样写,总是只写最后一个?
char szWrap[] = "\r\n";
CString szTmp;
for (unsigned long l = 0; l < 10; l++)
{
szTmp = saUnit.GetAt(l);
szTmp.Trim();
char szData[1024] = {0};
strcpy(szData, szTmp.GetBuffer(0));
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
//int nLength=::SendMessage(hwnd, WM_GETTEXTLENGTH, NULL, NULL);
//::SendMessage(hwnd, EM_SETSEL, nLength, nLength);
//m_edit.SetSel(nLength, nLength);
//::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
}
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);写入到记事本中,我后面的数据都用这样的方式写入,写一个换一行,如何来实现这样的功能,我像下面这样写,总是只写最后一个?
char szWrap[] = "\r\n";
CString szTmp;
for (unsigned long l = 0; l < 10; l++)
{
szTmp = saUnit.GetAt(l);
szTmp.Trim();
char szData[1024] = {0};
strcpy(szData, szTmp.GetBuffer(0));
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
//int nLength=::SendMessage(hwnd, WM_GETTEXTLENGTH, NULL, NULL);
//::SendMessage(hwnd, EM_SETSEL, nLength, nLength);
//m_edit.SetSel(nLength, nLength);
//::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
}
解决方案 »
- web服务
- ATL制作的显示GIF的控件,遇到的问题.请朋友们帮忙.谢谢
- win32DLL中创建的窗口在ACTIVEX控件中调用失败
- 麻烦帮我看下为什么静态文本区获取不到数据
- 如何学习mfc
- 请问各位:在VC中的winmain在哪儿?怎样编辑?是否可以带参数???
- 怎样在两个自定义对话中传输数据,这两个对话框不是同一个类
- 编译连接出错:cannot execute C preprocessor cl.exe。 Error executing midl.exe.
- 这样都行啊----老板是写软件的好沟通的很,干活痛快
- 加急,加急!!!一个小问题,对高手很简单,对菜鸟很有用!
- 一个服务器多个客户端的问题。
- 多媒体定时器不能停止,原因?
即先获得然后再写!
int GetWindowText(
HWND hWnd, // handle to window or control with text
LPTSTR lpString, // address of buffer for text
int nMaxCount // maximum number of characters to copy
);和
BOOL SetWindowText(
HWND hWnd, // handle to window or control
LPCTSTR lpString // address of string
);
CString szTmp;
for (unsigned long l = 0; l < 10; l++)
{
szTmp = saUnit.GetAt(l);
szTmp.Trim();
char szData[1024] = {0};
strcat(szData, szTmp.GetBuffer(0));
}
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);char szData[1024]可能要定义大一点
{
szTmp = saUnit.GetAt(l);
szTmp.Trim();
char szData[1024] = {0};
strcpy(szData, szTmp.GetBuffer(1024));
szTmp.ReleaseBuffer();//很重要// ::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);
// ::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
int nLength=::SendMessage(hwnd, WM_GETTEXTLENGTH, NULL, NULL);
::SendMessage(hwnd, EM_SETSEL, nLength, nLength);
::SendMessage(hwnd, EM_REPLACESEL, (WPARAM)TRUE, (LPARAM)szWrap);
}
int GetWindowText(
HWND hWnd, // handle to window or control with text
LPTSTR lpString, // address of buffer for text
int nMaxCount // maximum number of characters to copy
);和
BOOL SetWindowText(
HWND hWnd, // handle to window or control
LPCTSTR lpString // address of string
);
===================.
跨进程只能发消息得到文本
char szWrap[] = "\r\n";
CString szTmp;
char szData[1024] = {0};
for (unsigned long l = 0; l < 10; l++)
{
szTmp = saUnit.GetAt(l);
szTmp.Trim();
strcat(szData, szTmp.GetBuffer(0));
}
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szWrap);
for (unsigned long l = 0; l < 10; l++)
{
szTmp + = saUnit.GetAt(l); //拼接起来
szTmp.Trim();
}::SetWindowText(hEdit,szTmp.GetBuffer(0),szTmp.GetLength());
//或者这样:
//char *pBuffer=malloc(sizeof(char)*szTmp.GetLength()+1);
//strcpy(pBuffer,szTmp.GetBuffer(0));
//::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)pBuffer);
//free(pBuffer);
SendMessage(hWnd, EM_REPLACESEL, 0, (LPARAM)szWrap);
然后整个输入::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)szData);