2010-03-30 25 views
0

我有一個用MFC編寫的SDI應用程序。使用分離器窗口將幀分爲1行和2列。下面是行和列的細節(R0C0意味着行#0和Col#0)CHtmlView類和焦點

  1. R0C0視圖是一個像文本框,組合框等等
  2. R0C1視圖中的多個輸入控件一個CFormView是CHtmlView的那包含與輸入焦點在R0C0控制有關的HTML內容

我能夠更新HTML內容並通過我的MFC代碼調用Javascript函數。

問題: 當用戶點擊R0C1,包含CHtmlView時,焦點現在在html頁面上。我希望允許用戶使用鍵盤從R0C1中退出並返回到R0C0。你能幫忙嗎?用戶顯然可以使用鼠標點擊R0C0視圖,但我們有一個用戶需要使用鍵盤來使用此功能。

讓我知道,如果這個問題不夠詳盡,我會進一步簡化它。

欣賞你的時間。

感謝, 字節

回答

1

嘗試過量CHtmlView的:: OnTranslateAccelerator。我已經成功地使用這個技巧來禁用F5鍵刷新。從CHtmlView的派生你自己的類和重載

​​

這樣的:

HRESULT CMyHtmlView::OnTranslateAccelerator(LPMSG lpMsg, const GUID* pguidCmdGroup, DWORD nCmdID) 
{ 
    if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(VK_TAB) != 0) 
    { 
     // change focus 
     return S_OK; 
    } 
    return CHtmlView::OnTranslateAccelerator(lpMsg, pguidCmdGroup, nCmdID); 
} 
+0

FenchKiss開發, 謝謝您的回答。我會看看如何在我的應用程序上下文中使用您的方法。 我目前使用的是不同的方法。我已經將我的CHtmlView派生類作爲HTMLDocumentEvents2的事件接收器。通過這種方式,我接收文檔中每個元素的點擊,焦點等事件。當焦點到達頁面中的特定元素時,我會將焦點設置到其他視圖。 謝謝 – byte 2010-04-01 09:51:58