2013-03-13 81 views
0

我使用MFC並有一個主框架,並從工具欄接收WM_PASTE,WM_COPY消息等。 我想要做的就是將此消息傳遞給CPaneDialog,它具有焦點,因爲這是我希望粘貼文本的位置。從MFC中的CMainFrame委託OnUpdate ...消息

我已經想通了如何將消息發送到正確的觀點,通過使用這樣的:

void CMainFrame::OnEditPaste() 
{ 
    GetFocus()->SendMessage(WM_PASTE, 0); 
} 

我想現在要做的就是問的形式,如果它可以接收糊狀消息。我想我可以通過傳遞命令ui消息來做到這一點......但我該怎麼做?

void CMainFrame::OnUpdateEditPaste(CCmdUI *pCmdUI) 
{ 
    if(GetFocus()) 
    { 
    GetFocus()->??? 
    } 
} 

如果還有更好的方法來做到這一點,請讓我知道這一點。

我已經在我的派生CPaneDialog試圖

ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, &CDerivedPaneDialog::OnUpdateEditPaste) 

但這不起作用。

回答

3

MFC使用命令路由獲取命令(和UI更新)到可以處理它們的代碼。如果您修復了路由,則應該同時處理粘貼命令和UI更新。本文介紹the default routing。本文介紹how to change the routing

基本上,您在您的框架中覆蓋OnCmdMsg並在您的窗格中調用OnCmdMsg以查看它是否要處理該消息。如果不是,則調用基類來執行標準處理。

+0

Upvote發佈鏈接,正確和正確的工作*與* MFC而不是反對它。 – 2013-03-14 17:42:36

+0

這現在很好用!我正在盡我所能與MFC合作...我認爲有一個體面的框架埋在那裏。 – DanDan 2013-03-14 20:11:54