1. 程式人生 > >VC 遮蔽Alt組合鍵

VC 遮蔽Alt組合鍵

Win32程式的視窗訊息,會先經過PreTranslateMessage(MSG* pMsg),所以想做特殊操作(比如遮蔽按鍵)可以在這裡處理下。

處理後return TRUE,告知系統處理過了,否則傳給父類。

遮蔽單個按鍵

其中xxx是單個按鍵的虛擬鍵(不知道鍵值的,網上自行搜windows虛擬鍵)

if (WM_KEYDOWN == pMsg->message )
	{
		if (xxx == pMsg->wParam){

遮蔽Alt按鍵

組合鍵麻煩點,這裡說一下(Alt + x),網上找了一圈都不對。需要處理的是 pMsg->message == WM_SYSKEYDOWN

if (WM_SYSKEYDOWN == pMsg->message )
示例:
BOOL CXXApp::PreTranslateMessage(MSG* pMsg)
{
	// disable Alt+F4
	if (WM_SYSKEYDOWN == pMsg->message )
	{
		if (VK_F4 == pMsg->wParam){ // F4
			return TRUE;
		}
	}
	// disable Esc
	if (WM_KEYDOWN == pMsg->message )
	{
		if (VK_ESCAPE == pMsg->wParam){
			return TRUE;
		}
	} 
	return CWinApp::PreTranslateMessage(pMsg);
}

相關推薦

VC 遮蔽Alt組合

Win32程式的視窗訊息,會先經過PreTranslateMessage(MSG* pMsg),所以想做特殊操作(比如遮蔽按鍵)可以在這裡處理下。 處理後return TRUE,告知系統處理過了,否則傳給父類。 遮蔽單個按鍵: 其中xxx是單個按鍵的虛擬鍵(不知道鍵值的,網

vc 簡單遮蔽alt+F4、ESC和ENTER

void   CMainFrame::OnSysCommand(UINT   nID,   LPARAM   lParam)       {     if(nID==SC_CLOSE&&lParam==0)     {     return;     }  

alt組合使用

1. 啟用操作命令          按下Alt鍵可以啟用活動視窗的選單欄,使選單欄的第一個選單成為高亮條,     而按下Alt鍵和一個字母就可以啟用這個字母所代表的選單項,如按下Alt+F就可

如何在程式碼中遮蔽alt+tab組合

#include <windows.h> HHOOK g_hKeyBoard; //底層鍵盤系統呼叫,過濾alt + tab LRESULT CALLBACK KeyBoardProc(int code, WPARAM wParam, LPARAM lParam) { if

MFC:XP下遮蔽Ctrl+Alt+Del等組合的方法

遮蔽Ctrl+Alt+Del等組合鍵也是一個老生長談的話題了,95、98系統中有很多方法試用,但是在Xp下就不能用了,而本文則不考慮Win7系統,因為那又是另一種方法了,本文只介紹XP下遮蔽這些組合鍵的方法。 遮蔽Ctrl+Alt+Del我知道的有兩種,一個是直接改寫登錄檔,這個比較簡單,也能禁止,但是會有

再談vc傳送鍵盤、組合訊息

關於向Windows視窗傳送Alt組合鍵的問題,這個真是經典問題啊,在網上找了一下,問的人N多,方法差不多, 但就是沒有很好解決問題。之前找到一個能正確傳送的code:(Alt+A)PostMessage(hWnd,WM_SYSKEYDOWN,VK_MENU,0);PostMessage(hWnd,WM_S

如何在ActionScript中監聽組合,如:(ctrl+alt+c)

實現方法:第一步.在stage上新增鍵盤的監聽 this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyListener); 第二步.在監聽方法keyListener中判斷KeyboardEvent的屬性 priva

Win10正式版快捷大全,Win10快捷組合匯總

ctrl 選項 按鈕 窗口最大化 log 語言 頁面 順時針 整理 桌面操作:? 貼靠窗口:Win +左/右> Win +上/下>窗口可以變為1/4大小放置在屏幕4個角落? 切換窗口:Alt + Tab(不是新的,但任務切換界面改進)? 任務視圖:Win + T

Windows+X組合失效問題

nbsp 管理器 關閉 bsp 愛好 組合 中間 註冊 註冊表 有時候,生活總給你帶來點出其不意的樂趣,比如今天的【Windows+X組合鍵失效】,網上找了很多教程,修改註冊表等等,均無效。 博主在使用Win7、10、甚至8的時候居然都遇到這問題了,中間間隔時間很長,所以一

改進Vim體驗:在插入模式下移動光標,我不要用方向alt快捷使用技巧!

targe 判斷 映射 tar 什麽 nbsp .vimrc 一次 time 改進Vim體驗:在插入模式下移動光標,我不要用方向鍵!alt快捷鍵使用技巧! 大家都知道,我們在插入模式下編輯代碼的時候 若想寫完這一部分後,移動到鄰近的一部分,如下一個單詞的後面,是很復雜的

linux幾個重要的組合

str windows系統 有效 錯誤 alt font 參數 pwck ubuntu   我們在用Windows系統時,有沒有感覺快鍵鍵讓我們工作更有效率,在Linux系統中仍有很好用的快捷鍵,這些快捷鍵可以輔助我們進行指令的編寫與程序的中斷呢,下面介紹幾個經常用到的快捷

Eclipse Alt + / 快捷失效

對話 clip sos tro 分享圖片 pac nis 快捷鍵設置 ctr 需要重新設置快捷鍵。按快捷鍵ctrl+shirt+L,然後在按一下L。設置快捷鍵的對話框就出來了,然你將Word Completion移除,在將Content Assist 這個設置為alt+/。

JS實現鍵盤監聽(包括組合)

nbsp html gist 收集 and ros register col next 依然使用案例驅動~案例是學習的最好實踐! <html> <head> <meta

eclipse的一些快捷(快捷組合

Ctrl + F11 按上次方式執行  Ctrl + Shift + / 加上註釋/**/  Ctrl + Shift + \ 取消註釋/**/  Ctrl + / 加上或消除行註釋  Ctrl + D 刪除當前行  Ctrl + M 最大化視窗,切

VC++實現生成右選單及新增圖示

用VC++實現彈出選單比較簡單,這裡介紹其中的一種來實現一個滑鼠右鍵彈出選單,效果如下圖所示:     步驟: 一、新建一個基於對話方塊的MFC應用程式-----PopMenu 二、新增一個選單資源------IDR_MENU1,並加幾個子項,如下 &nb

QT 組合

CTRL+Enter傳送資訊的實現       在現在的即時聊天程式中,一般都設定有快捷鍵來實現一些常用的功能,類似QQ可以用CTRL+Enter來實現資訊的傳送。       在QT4中,所

如何使用win+r組合開啟非系統程式

我們知道,使用win+r組合鍵開啟執行視窗可以快速的啟動一個程式,但是這些程式都是系統自帶的程式。那麼如何讓那些非系統自帶的程式也能這樣啟動呢?我之所以想這麼做的原因是因為不喜歡電腦桌面上有大量的程式快捷方式,而且我的系統是win8的,這就意味著不能像win7和win10那樣

五個電腦常需用到的組合,電腦小白不得不學

我們現在經常需要使用到電腦,有時候使用組合鍵來操作電腦是十分方便,下面小編便來分享電腦高手最常用的五個快捷鍵,電腦小白如果想成大神,不得不學。 win+d,這個組合鍵能夠將桌面上的所有視窗一瞬間最小化,無論是qq聊天的視窗仍是遊戲的視窗都可以最小化,只需再次按下

C#窗體如何通過keybd_event()函式模擬鍵盤按鍵(組合)產生事件

如何模擬鍵盤按鍵觸發產生的事件,比如模擬按下Alt + F4 關閉當前程式,Ctrl+Shift 切換輸入法等 可以通過win32api 鍵盤事件 keybd_event() 來實現 1、定義鍵盤按鍵對應得鍵碼 #region bVk引數 常量定義

eclipse中ctrl+alt+方向快捷與系統快捷衝突解決

Win10系統下,在eclipse中使用快捷鍵 Ctrl + Alt + ↓/↑複製程式碼段的時候會發生螢幕顯示倒轉的現象,這是因為是eclipse的快捷鍵和Win10系統快捷鍵衝突了。按下Ctrl + Alt + ↑/↓螢幕的方向回覆正常。 解決這個衝突可以修改系統快捷鍵或者修改ec