# re: vc++2008 feature package中CPaneDialog的使用方法 回復(fù) 更多評(píng)論
2010-06-29 16:47 by
改寫CMainFrame的OnCmdMsg虛函數(shù)
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: 在此添加專用代碼和/或調(diào)用基類
if(m_dlgParams.OnCmdMsg( nID, nCode, pExtra, pHandlerInfo ) )
return TRUE;
return CMDIFrameWndEx::OnCmdMsg( nID, nCode, pExtra, pHandlerInfo );
}
# re: vc++2008 feature package中CPaneDialog的使用方法 回復(fù) 更多評(píng)論
2010-06-29 16:49 by
改寫CMainFrame的OnCmdMsg虛函數(shù)就可以解決CParamsDlg中不能捕獲到控件消息的問(wèn)題
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// TODO: 在此添加專用代碼和/或調(diào)用基類
if(m_dlgParams.OnCmdMsg( nID, nCode, pExtra, pHandlerInfo ) )
return TRUE;
return CMDIFrameWndEx::OnCmdMsg( nID, nCode, pExtra, pHandlerInfo );
}
# re: vc++2008 feature package中CPaneDialog的使用方法 回復(fù) 更多評(píng)論
2010-09-06 13:49 by
OnCmdMsg這個(gè)東東很有啟發(fā)!
可以控制ms按照CMainFrame-->CChildFrame-->CMyView的方向傳遞msg。
對(duì)于CPaneDialog的消息傳遞,可以重寫CChildFrame的OnCmdMsg,是的msg能夠路由到視圖,這個(gè)時(shí)候的工具欄按鈕等控件的msg就可以路由到視圖進(jìn)行處理了。
# re: vc++2008 feature package中CPaneDialog的使用方法 回復(fù) 更多評(píng)論
2010-11-07 00:12 by
最后,不知道,這種方法對(duì)不對(duì),畢竟新出來(lái)的東西,資料基本沒(méi)有,如果發(fā)現(xiàn)有更好的辦法,請(qǐng)告訴我!!
我有個(gè)很簡(jiǎn)單的方法,你肯定感興趣:
void CMyDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialogEx::OnShowWindow(bShow, nStatus);
// TODO: 在此處添加消息處理程序代碼
this->BringWindowToTop();
}
就是響應(yīng)WM_SHOWWINDOW
而后把窗口提到最前面
# re: vc++2008 feature package中CPaneDialog的使用方法 回復(fù) 更多評(píng)論
2010-11-07 00:36 by
sorry!我的情形同你的也許不一樣!
上面的方法也許成功,也許失敗!
我的代碼情況:(你可以參考下)
CDockablePane內(nèi)含一個(gè)CMFCTabCtrl,CMFCTabCtrl含有個(gè)Dialog項(xiàng),
起初我和你一樣,點(diǎn)擊Dialog中的按鈕,沒(méi)有任何反應(yīng),于是跟蹤消息路由,發(fā)現(xiàn)壓根沒(méi)有調(diào)用!
試驗(yàn)了N種方法(屬性頁(yè),F(xiàn)ormView都試驗(yàn)過(guò))
找到了2個(gè)方法:
1.就是上面(此時(shí)Dialog的parent window可以是framewnd)
2.將Dialog的parent window設(shè)置為CMFCTabCtrl對(duì)象(要是開(kāi)始就如此設(shè)置,也許就不會(huì)發(fā)生這些問(wèn)題,實(shí)在是coding失誤)
也許兩個(gè)方法還是幫助不了你!!
最后enjoy coding