日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BCGControlBar使用(九)

發(fā)布時間:2025/1/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BCGControlBar使用(九) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

狀態(tài)欄的使用

StatusBarDemo





const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;

?

static UINT indicators[] =
{
?ID_INDICATOR_ICON,??// status icon
?ID_SEPARATOR,?????????? // status line indicator
?ID_INDICATOR_PROGRESS,?// progress bar
?ID_INDICATOR_LABEL,??// text label
?ID_INDICATOR_ANIMATION,?// animation pane
?ID_INDICATOR_CAPS,
?ID_INDICATOR_NUM,
?ID_INDICATOR_SCRL,
};

?

CMainFrame::OnCreate

?if (!m_wndStatusBar.Create(this) ||
??!m_wndStatusBar.SetIndicators(indicators,
??? sizeof(indicators)/sizeof(UINT)))
?{
??TRACE0("Failed to create status bar\n");
??return -1;????? // fail to create
?}

?m_wndStatusBar.SetPaneStyle (nStatusIcon, SBPS_NOBORDERS);
?m_wndStatusBar.SetPaneStyle (nStatusAnimation, SBPS_NOBORDERS);
?m_wndStatusBar.SetPaneStyle (nStatusInfo, SBPS_STRETCH | SBPS_NOBORDERS);
?m_wndStatusBar.SetPaneWidth (nStatusProgress, 80);
?m_wndStatusBar.EnablePaneDoubleClick ();

?

?

?CBCGPStatusBar& GetStatusBar () const
?{
??return ((CMainFrame*) AfxGetMainWnd ())->GetStatusBar ();
?}

?

void CStatusBarDemoView::OnInitialUpdate()
{
?CFormView::OnInitialUpdate();

?m_wndTextColor.EnableAutomaticButton (_T("Default"), globalData.clrBtnText);
?m_wndTextColor.EnableOtherButton (_T("Other..."));
?m_wndTextColor.SetColor ((COLORREF)-1);

?m_wndBackColor.EnableAutomaticButton (_T("Default"), globalData.clrBtnFace);
?m_wndBackColor.EnableOtherButton (_T("Other..."));
?m_wndBackColor.SetColor ((COLORREF)-1);

?if (m_imlStatusAnimation.GetSafeHandle () == NULL)//m_imlStatusAnimation為CImageList
?{
??m_imlStatusAnimation.Create (IDB_ANIMATION, 16, 0, RGB (255, 0, 255));
?}

?const UINT uiLoadImageFlags = LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS;

?if (m_bmpIcon1.GetSafeHandle () == NULL)
?{
??HBITMAP hbmp = (HBITMAP) ::LoadImage (
???AfxGetResourceHandle (),
???MAKEINTRESOURCE(IDB_ICON1),
???IMAGE_BITMAP,
???0, 0,
???uiLoadImageFlags);
??m_bmpIcon1.Attach (hbmp);
?}

?if (m_bmpIcon2.GetSafeHandle () == NULL)
?{
??HBITMAP hbmp = (HBITMAP) ::LoadImage (
???AfxGetResourceHandle (),
???MAKEINTRESOURCE(IDB_ICON2),
???IMAGE_BITMAP,
???0, 0,
???uiLoadImageFlags);
??m_bmpIcon2.Attach (hbmp);
?}

?GetStatusBar ().SetPaneIcon (nStatusIcon, m_bmpIcon1);
?GetStatusBar ().SetTipText (nStatusIcon, _T("This is a tooltip"));//圖標的提示
}

void CStatusBarDemoView::OnStartProgress()
{
?if (m_bInProgress)
?{
??KillTimer (ID_PROGRESS_TIMER);
??m_wndStartProgress.SetWindowText (_T("Start Progress"));
??GetStatusBar ().EnablePaneProgressBar (nStatusProgress, -1);

??m_bInProgress = FALSE;

??return;
?}

?GetStatusBar ().EnablePaneProgressBar (nStatusProgress, PROGRESS_MAX);

?m_nProgressCurr = 0;
?m_bInProgress = TRUE;

?SetTimer (ID_PROGRESS_TIMER, 200, NULL);
?m_wndStartProgress.SetWindowText (_T("Stop Progress"));
}

void CStatusBarDemoView::OnStartAnimation()
{
?if (m_bInAnimation)
?{
??m_wndStartAnimation.SetWindowText (_T("Start Animation"));
??GetStatusBar ().SetPaneAnimation (nStatusAnimation, NULL);
??m_bInAnimation = FALSE;
??return;
?}

?GetStatusBar ().SetPaneAnimation (nStatusAnimation, m_imlStatusAnimation);
?GetStatusBar ().SetPaneText (nStatusAnimation, _T(""));
?GetStatusBar ().SetPaneWidth (nStatusAnimation, 16);

?m_wndStartAnimation.SetWindowText (_T("Stop Animation"));
?m_bInAnimation = TRUE;
}

void CStatusBarDemoView::OnIcon()
{
?UpdateData ();
?GetStatusBar ().SetPaneIcon (nStatusIcon, m_nIcon == 0 ? m_bmpIcon1 : m_bmpIcon2);
}

void CStatusBarDemoView::OnBackColor()
{
?GetStatusBar ().SetPaneBackgroundColor (nStatusLabel, m_wndBackColor.GetColor ());
}

void CStatusBarDemoView::OnTextColor()
{
?GetStatusBar ().SetPaneTextColor (nStatusLabel, m_wndTextColor.GetColor ());
}

void CStatusBarDemoView::OnIndicatorLabel()

//ID_INDICATOR_LABEL("Simple text")的響應(yīng)函數(shù)
{
?MessageBox (_T("Status bar pane double-click..."));
}

void CStatusBarDemoView::OnTimer(UINT_PTR nIDEvent)
{
?if (nIDEvent == ID_PROGRESS_TIMER)
?{
??m_nProgressCurr += 5;

??if (m_nProgressCurr > PROGRESS_MAX)
??{
???m_nProgressCurr = 0;
??}

??GetStatusBar ().SetPaneProgress (nStatusProgress, m_nProgressCurr);
?}
?
?CFormView::OnTimer(nIDEvent);
}

總結(jié)

以上是生活随笔為你收集整理的BCGControlBar使用(九)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。