我要在SDI的状态栏上显示自己的内容,请问我该如何操作?
我有这么一段代码:
char status[100];
sprintf(status,"通过 %s 发送指令 %s",strPort.GetBuffer(50),Data.GetBuffer(50));
::SendMessage(m_hStatusWnd,SB_SETTEXT,0,(LPARAM)status);
这里的这段代码是用在基于对话框的程序上显示自己的内容的m_hStatusWnd=CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,TEXT("状态栏"),//显示在状态栏上的信息
m_hWnd, //父窗口句柄
IDS_STATUS); //预定义的资源ID哪位大哥能给我一段用在单文档的?!~~~
最好是完全的,不要光给我一句,不然我可能不会用。
我一直就不知道如何使用SDI的状态栏!万分感谢!
我有这么一段代码:
char status[100];
sprintf(status,"通过 %s 发送指令 %s",strPort.GetBuffer(50),Data.GetBuffer(50));
::SendMessage(m_hStatusWnd,SB_SETTEXT,0,(LPARAM)status);
这里的这段代码是用在基于对话框的程序上显示自己的内容的m_hStatusWnd=CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,TEXT("状态栏"),//显示在状态栏上的信息
m_hWnd, //父窗口句柄
IDS_STATUS); //预定义的资源ID哪位大哥能给我一段用在单文档的?!~~~
最好是完全的,不要光给我一句,不然我可能不会用。
我一直就不知道如何使用SDI的状态栏!万分感谢!
解决方案 »
- ListCtrl如何只响应点击CheckBox的操作
- win7/Vista中使用QueryServiceConfig获取服务信息
- 如何使用使用ESC/P的控制指令GS * 下装位图到打印机
- 奇怪的CComboBox问题
- 请问引起异常: Microsoft C++ exception: int @ 0x0012fd00的原因
- vc用ado访问数据库,连接上了,调用对话框里的命令却无法操作,大家看看是什么原因呢?
- 自动创建表
- 怎么显示右键弹出菜单?
- 怎样好好利用大三以后的时间?
- 请人代做opengl程序,重金酬谢
- 用closesocket来关闭已被AcceptEx投递,但还没接收到新连接而返回的套接字 会有什么问题,请各位大侠指教!
- 全屏~~还是全屏
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
} m_wndStatusBar.SetWindowText("abc");
// StatusBarMessage() - Writes to status bar using sprintf syntax.
//
// Author: Keith Rule -- [email protected]
//
// Copyright (c) 1995-1996, Keith Rule
// May be freely used provided this comment
// is included with the source and all derived
// versions of this source.
void StatusBarMessage(char* fmt, ...)
{
if (AfxGetApp() != NULL && AfxGetApp()->m_pMainWnd != NULL) {
char buffer[256];
CStatusBar* pStatus = (CStatusBar*)
AfxGetApp()->m_pMainWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR);
va_list argptr;
va_start(argptr, fmt);
vsprintf(buffer, fmt, argptr);
va_end(argptr);
if (pStatus != NULL) {
pStatus->SetPaneText(0, buffer);
pStatus->UpdateWindow();
}
}
}
用途就是通过该对话框上的按钮向串口发送信息!
下面这个函数就是向串口写信息用的。第一个参数是是要发的指令,第二个是长度。void CMirrorControl::WriteToPort(BYTE* pData, UINT len)
{
CString strPort,Data;
itoa(*pData,Data.GetBuffer(50),2);
Data.ReleaseBuffer();
while(Data.GetLength()<8)
Data.Insert(0,'0');
sprintf(strPort.GetBuffer(50),"串口%d",m_Port.m_nPortNr);
strPort.ReleaseBuffer();
m_Port.WriteToPort(pData,len);
StatusInfo(strPort,Data);
// m_nTimer = SetTimer(1, 1000, 0);
}下面这个函数就是原基于对话框的应用程序用来在状态条显示信息用的!
void CMirrorControl::StatusInfo(CString strPort, CString Data)
{
char status[100];
sprintf(status,"通过 %s 发送指令 %s",strPort.GetBuffer(50),Data.GetBuffer(50));
::SendMessage(m_hStatusWnd,SB_SETTEXT,0,(LPARAM)status);
}我现在想问的就是如何改写(最好是改后面的这个函数)函数,才能在状态栏上显示发送到串口的数据。sprintf(status,"通过 %s 发送指令 %s",strPort.GetBuffer)
这条语句就是格式,例如:“通过COM1发送指令01000000”
麻烦大家帮我再看看,楼上的代码我不太懂!
不好意思!