本文整理汇总了C++中CStatusBar::GetFont方法的典型用法代码示例。如果您正苦于以下问题:C++ CStatusBar::GetFont方法的具体用法?C++ CStatusBar::GetFont怎么用?C++ CStatusBar::GetFont使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CStatusBar
的用法示例。
在下文中一共展示了CStatusBar::GetFont方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Resize
BOOL CProgressBar::Resize()
{
if (!IsWindow(GetSafeHwnd()))
return FALSE;
CStatusBar *pStatusBar = GetStatusBar();
if (!pStatusBar)
return FALSE;
// Redraw the window text
if (IsWindowVisible())
{
pStatusBar->SetPaneText(m_nPane, m_strMessage);
pStatusBar->UpdateWindow();
}
// Calculate how much space the text takes up
CClientDC dc(pStatusBar);
CFont *pOldFont = dc.SelectObject(pStatusBar->GetFont());
CSize size = dc.GetTextExtent(m_strMessage); // Length of text
int margin = dc.GetTextExtent(_T(" ")).cx * 2; // Text margin
dc.SelectObject(pOldFont);
// Now calculate the rectangle in which we will draw the progress bar
CRect rc;
pStatusBar->GetItemRect(m_nPane, rc);
// Position left of progress bar after text and right of progress bar
// to requested percentage of status bar pane
if (!m_strMessage.IsEmpty())
rc.left += (size.cx + 2*margin);
rc.right -= (rc.right - rc.left) * (100 - m_nSize) / 100;
if (rc.right < rc.left) rc.right = rc.left;
// Leave a litle vertical margin (10%) between the top and bottom of the bar
int Height = rc.bottom - rc.top;
rc.bottom -= Height/10;
rc.top += Height/10;
// If the window size has changed, resize the window
if (rc != m_Rect)
{
MoveWindow(&rc);
m_Rect = rc;
}
return TRUE;
}