亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是不是要創建一個線程來獲取文件加載的進度???懇請大俠幫幫忙啊!

是不是要創建一個線程來獲取文件加載的進度?。繎┱埓髠b幫幫忙??!

C++ C
慕尼黑5688855 2022-10-02 13:09:25
我在對話框中設置了一個菜單,當點擊“打開”時出現選擇文件對話框,選擇文件,打開。這時我想用個進度條來同步顯示文件加載時的進度。這是點擊菜單中“打開”時的響應函數:void CXkvtPlayerDlg::On32771(){// TODO: 在此添加命令處理程序代碼CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,"virtools文件(*.cmo)|*.cmo");if (IDOK!=dlg.DoModal()){return;}filename1=dlg.GetPathName();OnInitPlayer(); //加載文件的函數,該文件使用Virtools做的一個三維視圖文件。GetMenu()->GetSubMenu(0)->EnableMenuItem(0,MF_BYPOSITION|MF_DISABLED|MF_GRAYED);}
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

首先在頁面中加入進度條控件,具體叫什么記不清了,自己找一下
然后綁定變量
如果沒猜錯的話OnInitPlayer(); 這個函數是整個文件導入的函數吧。
應該從這個函數下手,因為只有這個函數里面才知道文件真正的導入進度。
在這個函數中,首先獲取文件的大小,然后沒導入一部分之后,算好比例,更新界面上的進度條就可以了。

查看完整回答
反對 回復 2022-10-06
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

首先打開文件不需要進度條,open是立刻返回,只有讀入的時候,如果文件很大才需要進度條,對用戶提示。
方法1 循環讀入文件,每讀一段數據,就更新下進度條,讓它前進一小步。
方法2 多線程,在另一個線程里讀入,并更新進度條,可以先把進度條做參數傳入

查看完整回答
反對 回復 2022-10-06
?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

1.在MainFrm.h中生命對象:
CProgressCtrl m_progres;
2.在CMainFrame::OnCreate函數中創建狀態欄樣式:
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);

3.添加WM_PAINT消息,在消息的處理函數中:
CRect rect;
m_wndStatusBar.GetItemRect(0,&rect);
if(!m_progres.m_hWnd)
{
m_progres.Create(WS_CHILD | WS_VISIBLE ,//| PBS_SMOOTH,
rect,&m_wndStatusBar,123);
}
else
{
m_progres.MoveWindow(rect);
}

4.添加一個菜單,對其進行測試:
void CMainFrame::OnRun()
{
m_progres.StepIt();
}


查看完整回答
反對 回復 2022-10-06
  • 3 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號