在vc6.0中采用另一种方法实现例6-11中添加在状态栏显示硬币数量的功能,通过访问框架类的成员变量m_wndStatusBar来获取状态栏的指针
时间: 2024-06-11 18:10:02 浏览: 128
在VC6.0中,可以通过以下步骤实现在状态栏显示硬币数量的功能:
1. 在MainFrame.cpp中,添加以下代码段:
```cpp
void CMainFrame::UpdateStatusBar(int nCoins)
{
CString strCoins;
strCoins.Format(_T("Coins: %d"), nCoins);
m_wndStatusBar.SetPaneText(0, strCoins);
}
```
这个函数会更新状态栏上第一个区域(索引为0)的文本,显示当前硬币数量。
2. 在CoinCollectorView.cpp中,调用该函数更新状态栏。可以在OnDraw函数中添加以下代码段:
```cpp
CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();
pMainFrame->UpdateStatusBar(m_nCoins);
```
这个代码段会获取主窗口指针,并调用UpdateStatusBar函数更新状态栏。
3. 在MainFrame.h中,添加以下函数声明:
```cpp
void UpdateStatusBar(int nCoins);
```
这个函数声明会让CoinCollectorView.cpp中的代码能够访问到UpdateStatusBar函数。
4. 最后,在MainFrame.cpp的OnCreate函数中,添加以下代码段:
```cpp
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // 退出应用程序
}
```
这个代码段会创建状态栏,并设置状态栏上的指示器。注意,这个代码段已经在例6-11中有过介绍,这里就不再赘述。
通过以上步骤,就可以在VC6.0中实现在状态栏显示硬币数量的功能。其中,访问框架类的成员变量m_wndStatusBar来获取状态栏的指针是比较常见的做法,因为在MFC中,框架类通常会为应用程序提供一些公共的成员变量和函数,方便其他类访问和调用。
阅读全文