簡體   English   中英

在無模式對話框窗口中通過加速鍵

[英]Pass through accelerator key while modeless dialog window up

我們有一個非常大的內部MFC應用程序。 它具有一個帶菜單欄的主窗口,以及數百個唯一的子窗口(無菜單欄),這些子窗口顯示在主窗口的頂部(並非同時顯示)。 這些子窗口實現為CDialog但是無模式運行(通過CreateWindow ,而不是DoModal )。 他們的父級HWND設置為NULL

我們最近收到了一項功能請求-即使子窗口之一是活動窗口,也可以從主窗口中使用特定的菜單欄加速器。 從用戶的角度來看,這是有道理的。

可以通過應用程序范圍的鍵盤掛鈎很容易地偽造它,並注意確切的擊鍵,但是我想知道是否有更干凈的方法?

您也可以在主窗口中使用RegisterHotKey() 即使在其他應用程序中按下該鍵,也會觸發新的熱鍵觸發的副作用。 您可以通過將GetCurrentProcessId()GetWindowThreadProcessId(GetForegroundWindow())進行比較來解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM