2008-10-28 59 views
3

默認的Windows(XP)顯示下劃線的熱鍵只是,當按下ALT。這可以在子對話框「效果」的顯示屬性中更改,所以熱鍵是總是帶下劃線的設置通過API強調菜單熱鍵(窗口)

如何以編程方式更改?可以使用哪種API調用或註冊表設置來更改此設置?

+0

您可以發佈您的解決方案作爲一個答案了,所以人們可以給予好評呢?這樣做也會使這個問題從未解決的問題中消失。 – Otherside 2008-11-17 10:37:13

回答

3

我找到了解決方案,如何查詢和設置:

BOOL b 
SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &b, 0); 
if (!b) { 
    b = TRUE; 
    SystemParametersInfo(SPI_SETKEYBOARDCUES, 0, &b, 0); 
} 
2

你的意思,你想改變這個系統範圍的設置,或者您希望能夠覆蓋只在你的程序的行爲?

如果是後者,並且您使用的是Win32 API,則看起來您可能能夠捕獲WM_CHANGEUISTATE通知:http://blogs.msdn.com/oldnewthing/archive/2005/05/03/414317.aspx我沒有嘗試過,但似乎可行。

如果是你想要的前者,我還沒有能夠發現一種方法。

+0

其實這是很容易的,但你不必* *抓WM_CHANGEUISTATE,你要送* *它到你的窗口:`SendMessage消息(HWND,WM_CHANGEUISTATE,UISF_HIDEACCEL << 16 | UIS_CLEAR,0);`。謝謝,我花了近2個小時尋找那個! – 2009-08-04 15:49:48