2017-01-16 80 views
0

我想在底部添加一個工具欄來顯示我的鼠標位置。MFC如何添加工具欄以顯示更改的文本

如何添加一個只讀的,當我移動鼠標時會不斷更新?

我所做的只是製作一個工具欄,它有一個按鈕而不是隻讀樣式。

回答

0

我想補充,你不應該推到狀態欄的信息。讓主消息泵在空閒時處理它。在您的子/主派生框架中添加一個UI處理程序。讓它從視圖中提取信息。

ON_UPDATE_COMMAND_UI(ID_STATUSBAR_LABEL, &OnUpdateStatusText) 
... 
void CADFrame::OnUpdateStatusText(CCmdUI *pCmdUI) 
{ 
    pCmdUI->Enable(); 
    CADView* pView= dynamic_cast< CADView* >(GetActiveView()); 
    ASSERT_VALID(pView); 
    pCmdUI->SetText(pView->GetStatusInfo()); 
... 
} 

當您使用鼠標位置時,您將在視圖中存儲最後一個鼠標位置以進行漸進式計算。因此,在你看到的東西像,(這取決於你所要做的):

const CString& CADView::GetStatusInfo() 
{ 
    if(bStatusMouseChanged) 
    { 
     strStatus.Format(_T(" x: %.4f y: %.4f") 
      ,(double)(ptLastMouse.x - offsetx)/winScale 
      ,(double)(ptLastMouse.y - offsety)/winScale 
     ); 
     bStatusMouseChanged= false; 
    } 
    return strStatus; 
} 

通過保持一個標誌,你只需要建立字符串,當你需要。從shameless promo of my project