一个可以用于输出信息的窗口程序
2009-07-13 21:01
447 查看
In general, we can set breakpoints under the debug mode when our program encounters some problems. However, it's inconvenient to stop the program to debug sometimes, or it's not so easy to solve some logical error just by step debuging. Besides, there will no debug environment on the customer's machine so that it's unable to debug there. And you may just hope to output some information to judge the state of certain running program.
I develop a program that can receive messages from other processes. Maybe you can use it to help you under ciucumstances described above. The principle is very easy. Use one of the interprocess mechanism: windows message. As a result, only a small segment of code need to be inserted to your code. And, I devide messages into different grade: information, warning and error. The code of my test case is shown bellow:
And the interface of this message window and the test program is shown below:
Note that the overhead of message-passing should be considered if you need to take some operation very fast. The result may be not uncertain if you insert the code of sending message.
The downloading address is http://download.csdn.net/source/1486883.
I develop a program that can receive messages from other processes. Maybe you can use it to help you under ciucumstances described above. The principle is very easy. Use one of the interprocess mechanism: windows message. As a result, only a small segment of code need to be inserted to your code. And, I devide messages into different grade: information, warning and error. The code of my test case is shown bellow:
#define INFO_MESSAGE WM_USER + 500 // 信息消息ID #define WARN_MESSAGE WM_USER + 501 // 警告消息ID #define ERROR_MESSAGE WM_USER + 502 // 错误消息ID void CTestTraceDlg::OnBnClickedSendInfo() { // TODO: 在此添加控件通知处理程序代码 HWND hMessWnd = ::FindWindow(NULL, "TraceWindow"); if (hMessWnd) { UpdateData(); int nLen = m_str.GetLength(); if (nLen > 255) { AfxMessageBox("不能超过255个字符"); return; } ATOM hMsg = GlobalAddAtom(m_str); if (hMsg) { ::PostMessage(hMessWnd, INFO_MESSAGE, hMsg, 0); } } } void CTestTraceDlg::OnBnClickedSendWarn() { // TODO: 在此添加控件通知处理程序代码 HWND hMessWnd = ::FindWindow(NULL, "TraceWindow"); if (hMessWnd) { UpdateData(); int nLen = m_str.GetLength(); if (nLen > 255) { AfxMessageBox("不能超过255个字符"); return; } ATOM hMsg = GlobalAddAtom(m_str); if (hMsg) { ::PostMessage(hMessWnd, WARN_MESSAGE, hMsg, 0); } } } void CTestTraceDlg::OnBnClickedSendError() { // TODO: 在此添加控件通知处理程序代码 HWND hMessWnd = ::FindWindow(NULL, "TraceWindow"); if (hMessWnd) { UpdateData(); int nLen = m_str.GetLength(); if (nLen > 255) { AfxMessageBox("不能超过255个字符"); return; } ATOM hMsg = GlobalAddAtom(m_str); if (hMsg) { ::PostMessage(hMessWnd, ERROR_MESSAGE, hMsg, 0); } } }
And the interface of this message window and the test program is shown below:
Note that the overhead of message-passing should be considered if you need to take some operation very fast. The result may be not uncertain if you insert the code of sending message.
The downloading address is http://download.csdn.net/source/1486883.
相关文章推荐
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 在windows窗体程序中单独开一个dos命令行窗口,输出我们想要的信息(调试程序常用)
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 在cmd启动一个MFC程序,printf把信息输出到启运它的那个CMD窗口
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- AfxMessageBox("这里为提示框的内容");程序弹出一个提示窗口,可以做调试提示信息
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中(AllocConsole SetConsoleTitle WriteConsole 最后用ShowWindow(GetConsoleWindow)进行显示)
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- C#程序输出信息到调试窗口的几种方式
- 编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
- 编写一个程序用于控制其他应用程序窗口的隐藏和显示: