1. 程式人生 > >實現按鈕的左鍵單擊和右鍵單擊事件 編輯框的回車鍵和ctrl+enter組合鍵訊息響應

實現按鈕的左鍵單擊和右鍵單擊事件 編輯框的回車鍵和ctrl+enter組合鍵訊息響應



                      實現按鈕的左鍵單擊和右鍵單擊事件   實現編輯框的回車鍵和ctrl+enter組合鍵訊息響應


VC+MFC裡按鈕只有單擊和雙擊訊息,要實現做簡單幾何右鍵單擊,得在PreTransLateMessage裡面實現;
對話方塊的PreTranslateMessage裡 實現 按鈕的左鍵單擊和右鍵單擊事件;
也在裡面實現回車鍵響應和Ctrl+enter組合鍵響應。

//在這裡處理按鈕的左鍵單擊和右鍵單擊,編輯框回車和CTRL+ENTR訊息
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	int My_ID=GetWindowLong(pMsg->hwnd, GWL_ID);  //由訊息控制代碼獲得傳送訊息的控制元件ID號
	if(My_ID==IDC_BUTTON1) //點選按鈕
	{
		if(pMsg->message==WM_LBUTTONDOWN) //如果滑鼠左鍵按下	
		{
			MessageBox("左鍵點選按鈕");	
		}
		
		if(pMsg->message==WM_RBUTTONDOWN) //如果滑鼠右鍵按下
		{	
			MessageBox("右鍵點選按鈕");
		}
	}

	//在此新增對話方塊裡面的編輯框的Enter和Ctrl+enter響應訊息
	if(My_ID==IDC_EDIT1)// 編輯框
	{
		if(pMsg->message==WM_KEYDOWN   &&   pMsg-> wParam==VK_RETURN) 
		{ 
			if( GetKeyState(VK_CONTROL)&0x80 )   
			{
				PostMessage(WM_COMMAND,IDC_EDIT1,0); 
			
				UpdateData(true);
                                     CString str;
				str.Format("%s\r\n",m_edit);
				m_edit.Format("%s",str);
				UpdateData(false);
				
                                     CDC *dc=GetDC();
				CSize sz=dc->GetTextExtent(m_edit);
				//下面設定游標跟在字串的最後面
		                    ((CEdit*)GetDlgItem(IDC_EDIT1))->SetSel(DWORD(sz.cx),DWORD(sz.cx),TRUE);

				return true; 
				
			}
			else
			{
				PostMessage(WM_COMMAND,IDC_EDIT1,0); 
				MessageBox(" Enter");
				return true; 
			}
			
			
		} 
	}

	
	return CDialog::PreTranslateMessage(pMsg);
}

相關推薦

實現按鈕事件 編輯回車鍵ctrl+enter組合訊息響應

                      實現按鈕的左鍵單擊和右鍵單擊事件   實現編輯框的回車鍵和ctrl+enter組合鍵訊息響應 VC+MFC裡按鈕只有單擊和雙擊訊息,要實現做簡單幾何右鍵單擊,得在PreTransLateMessage裡面實現; 對話方塊的Pre

Android EditText彈出軟鍵盤實現頁面標題頭不動,軟鍵盤彈出在編輯下面

為了實現EditText編輯的時候彈出軟鍵盤標題頭不動,底部編輯框上移,想了好多種方法,也百度,問同事每種辦法都有問題,在這總結一下,希望能幫助到大家。 上圖看下效果: 可以看到彈出鍵盤的時候,只有EditText在軟鍵盤上面,還有一個藍色點,這個隨後再說。 用Relative

MFC 編輯輸出執行緒操作及UpdateData()函式報錯

很久沒有寫MFC,最近在寫MFC的時候遇到了很多問題,把這次遇見的問題及解決方法整理如下,以便下一次用的時候查閱。 編輯框輸出 編輯框輸出有多種方法,按照以前的方法在vs2010運用時居然沒有顯示,把這次的程式碼做為示例以便下次用時查閱。 CString str; str.Forma

關於百度富文字編輯器UEditor中ctrl+enter傳送訊息的解決方案

最近一個訊息外掛中遇到一個特殊需求,就是一旦ueditor編輯器獲取焦點以後,除非讓編輯器失去焦點,否則window的鍵盤監聽事件就失去作用了,在這種情況下如何才能使用ctrl+enter傳送已經編輯好的內容呢?上網搜了好多,發現大家都遇到這個問題了,這裡我將我自己的解決方

MFC 系統托盤圖示實現,包括雙圖示圖示選單

首先,必須知道一個結構體NOTIFYICONDATA ,這是MFC中包含系統需要的用來傳遞托盤區域訊息的資訊結構體,有了它,我們今天的任務就完全可以輕鬆完成了!      這時候,我們可以在我們的類中申明一個NOTIFYICONDATA的

nRF52832 — 基於HID實現滑鼠的滾輪

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX  作       者:ZHS(文化人) XX  聯絡方式:文章末尾Chat快問(或進群:471144274)

C#實現截取截取字符串實例

poi renren www. itl text ear 我們 沒有 splay 本文實例講述了C#實現左截取和右截取字符串的方法,分享給大家供大家參考。具體方法分析如下: 問題如下: 使用C#語法編寫程序時,我們需要截取一個字符串左邊或右邊的若幹個字符,該如何操作呢?

window7 安裝TortoiseGit沒有git.exe 沒有clone等按鈕解決方法

這裡只記錄我所遇到的問題,有遇到類似問題的小夥伴可以參考一下 我個人之前一直用的SVN,當時直接用的TortoiseSvn安裝的,這次想試著用GIT,用TortoiseGit安裝後發現有問題。右鍵已經有

C語言實現字串迴圈

C語言實現迴圈左移和右移這個沒有什麼好說的,直接上程式碼:#include <stdio.h> //寫一個函式 實現功能:輸入字串,向右迴圈或者逆時針移動N位元組,再輸出這個字串 /* //比如:左移2位元組 //左邊不變,右邊變 p[0

實現字串旋的常見方法

     說起字串的左旋和右旋問題,想必大家都不陌生,這是一個在初學C語言過程中經常遇到的一個問題,解題的思路可以說很多,每一個人的看待問題的角度都不同,所以就可以得到不同的解題思路。下面我就列舉幾種

圖形學之C語言OpenGL實現三角形繞其中心旋轉,點選選單改變大小顏色,鍵盤按鍵控制旋轉的開始暫停等功能

一、  實驗要求1.使用滑鼠選擇視窗內任意位置畫N個等腰三角形。2.要畫的三角形大小及顏色通過右鍵彈出選單選定(任選M個顏色)。3.設定三角形繞其中心旋轉的開始、停止、旋轉方向的功能鍵,並通過相應按鍵控制三角形旋轉。二、  完成情況由於沒能實現在滑鼠任意選定的位置畫三角形並且

通過按鈕操作元素

在寫列表的過程中遇到一個問題類似下面的圖片,當元素排滿時隱藏,並且可以通過左右按鈕使裡面的元素左右移出。 由於前端知識匱乏,遇到了一些問題 1、方法一 外部的div的寬度是固定不變的,裡面的元素的個數不是固定的,當內部所有元素的個數的寬度超出外部div的時候,

java實現迴圈移的簡單演算法

 byte a=112,用程式實現,將其迴圈左移三位和右移三位。 112的二進位制原碼:0111 0000 112迴圈左移3位後的二進位制碼:1000 0011 112迴圈右移3位後的二進位制碼:0000 1110 先將迴圈左移的程式程式碼告訴大家: public clas

滑動一定距離 再次點滑動回到原來位置 並且切換點圖標

png image chan right tel stop ner over nim $(function(){ var i = $("#right").css("left"); $("#dianji").click(function(){ $("#leftmen

bootstrap-表控件——復選checkbox選擇按鈕radio

bootstrap-表單控件——復選框checkbox和單選擇按鈕radio1.運行效果如圖所示2.實現代碼如下<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-

49.按鈕只能一次,鼠標事件

down html size src 嵌入 sna gif mouse utf 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF

php實現文字提交表並傳遞數據至下一個頁面

asc div echo data -- 提交表單 blog 類型 使用 <?php $id="4";//等會要把這個數據傳到第二個頁面 ?> <?php echo "<li>";

menu菜單項menubutton菜按鈕的結合使用

效果圖 src 保存 image icon alert show blog cls <!--創建需要顯示的菜單按鈕(munebutton),menu指定的是菜單項--><a href="javascript:void(0)" id="mb" class="

值引用值引用

開發 左值 優化 語法 表達 3.2 右值 實現 規則 1、左值和右值的概念 左值是可以放在賦值號左邊可以被賦值的值;左值必須要在內存中有實體; 右值當在賦值號右邊取出值賦給其他變量的值;右值可以在內存也可以在CPU寄存器。

連接連接的理解?

關聯 條件 影響 rom pos lec right clas 記憶 1.左連接     關鍵字:  left join on   記憶:   左連接影響右表   理解:   左表和右表根據條件關聯,這個條件影響的是右表的表   舉例:  select * from dep