VC6.0 MFC點選編輯框彈出對話方塊
在寫介面的用於觸屏時,往往需要編輯框彈出盤來進行輸入,下面就將我思路寫一下吧,
1.剛開始在網讓找一些這方面的資料,結果在論壇中有發現這樣一個帖子,見面的連結:
看過之後有一些思路,就是派生一個編輯框類,在派生的類中處理PreTranslateMessage,
於是寫程式碼如下:
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox(_T("點我!"));
}
}
return CEdit::PreTranslateMessage(pMsg);
}
可是還不能達到我的預期效果,第一次點選了編輯框1後無反應,在點二次編輯框1後,每次再點對話方塊的任何位置還是會彈出對話方塊,
於是想,難道這種思路不對?
但是突然間想到,在執行完AfxMessageBox(_T("點我!"));後接著執行了return CEdit::PreTranslateMessage(pMsg);
所以跟以前沒有什麼 區別,於是在AfxMessageBox(_T("點我!"));後追加 return true;這樣執行完
就不執行了return CEdit::PreTranslateMessage(pMsg);試了一下,第一次點選了編輯框1後無反應,在點二次編輯框1後彈出相應的提示,
每次再點對話方塊的任何位置不會彈出對話方塊,目標達到高興中....
但是問題又來了, 假如在對話中有兩個編輯框,一個為編輯框1,另一個為編輯框2,則再按上面的程式碼寫:
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = ::GetFocus();
int iID=::GetDlgCtrlID(hWnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox(_T("1"));
}
else if(iID==IDC_EDIT2)
{
AfxMessageBox(_T("2"));
}
}
return CEdit::PreTranslateMessage(pMsg);
}
這樣執行程式,發麵在第一次點選了編輯框1後,如前面一樣,無反應,在第二次編輯框1才執行AfxMessageBox(_T("1"));
再點編輯框2,還是會執行AfxMessageBox(_T("1"));無語了,思來想去,原來是HWND hWnd = ::GetFocus();在做怪,因為
這是在PreTranslateMessage中執行HWND hWnd = ::GetFocus();所以編輯框還沒有得到焦點,此時還是編輯框1的
焦點,把以還是執行AfxMessageBox(_T("1"));於是想著,不在PreTranslateMessage處理單擊事件了,
直接在Edit中的單擊事件中處理,於是程式碼如下:
void CMyEdit::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
if(iID==IDC_EDIT1)
{
AfxMessageBox("1");
}
else if(iID==IDC_EDIT2)
{
AfxMessageBox("2");
}
CEdit::OnLButtonUp(nFlags, point);
}
這樣執行檔案,效果達到了!!!
相關推薦
VC6.0 MFC點選編輯框彈出對話方塊
在寫介面的用於觸屏時,往往需要編輯框彈出盤來進行輸入,下面就將我思路寫一下吧, 1.剛開始在網讓找一些這方面的資料,結果在論壇中有發現這樣一個帖子,見面的連結: 看過之後有一些思路,就是派生一個編輯框類,在派生的類中處理PreTranslateMessage, 於
android仿微信、QQ等聊天介面,實現點選輸入框彈出軟鍵盤、點選其他區域收起軟鍵盤,預設滑動至最低端
如圖所示,點選輸入框及選擇圖片和傳送按鈕時軟鍵盤顯示且不消失,點選其他區域,則隱藏軟鍵盤。 主要程式碼如下: override fun dispatchTouchEvent(ev: MotionEvent?): Boolean { if (ev!!.getAction() ==
android 實現點選輸入框彈出日期選擇對話方塊(DatePickerDialog)
前言 這裡我們實現一個功能,點選日期輸入框(EditText),即可彈出日期選擇對話方塊(DatePickerDialog),等使用者選擇日期後,將使用者選擇的日期顯示在日期輸入框。 1.activity_main.xml 這裡只有一個TextView和EditText。
點選文字框彈出下拉框並賦值
實現下面效果 窗體:Form1: 一:窗體佈局:文字框一個或多個,下拉框一個,初始化隱藏,定義全域性變數 string click_value = ""; private void Form1_Load(object sender, EventArgs e) {
點選Input框彈出日期選項
測試地址:http://down.admin5.com/demo/code_pop/18/1299/ 效果圖片: 後臺程式碼: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:
MFC點選按鈕開啟檔案選擇對話方塊
函式名:OnBnClickedOpenFileButton 函式功能:通過點選一個按鈕實現開啟檔案選擇對話方塊 引數:無 返回值:void 作者:weekdawn void CexeDemoDlg:
VC++6.0 MFC中獲取編輯框內容
1、方法一:設定編輯框變數 在MFC的基本對話方塊中,建立一個編輯框控制元件,為控制元件新增一個型別為CEdit的變數 m_Edit 。 CString str; m_Edit.GetWindowText(str); 2、方法二:通過ID獲取 CString
C#:點選按鈕,彈出輸入框,輸入並獲取內容
1.起因 一開始是直接用 TextBox接收使用者的輸入內容,但是有時候不想在窗體上加控制元件,所以就想到了另一種辦法,彈出一個輸入框,輸入並獲取內容,之後輸入框又消失不見,不佔位置。 2.用法 先要在專案中引入框架 Microsoft.VisualStudio
ListView點選item底部彈出popupWindow刪除、修改、取消選擇框
先看一下效果: 點選單個item彈出選擇框,可以選擇刪除或者修改。刪除單條item,或者跳轉到修改頁面。 listview的佈局: <?xml version="1.0" encoding="utf-8"?> <LinearLay
ios學習筆記之-點選一個按鈕彈出撥打電話提示框
按鈕的程式碼就不寫了。直接寫主要程式碼。 <key>LSApplicationQueriesSchemes</key> <array> <string>tel</string> <string>telp
bootstrap點選刪除按鈕彈出確認框實現
<%@ page language="java" import="com.student.servlet.*" contentType="text/html; charset=UTF-8"
點選按鈕Alert彈出遮罩層效果的提示框程式碼
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN"> <head> <title>經過改善優化的Alert彈出提示效果</titl
DialogFragment常見問題(黑色稜角、點選編輯框外關閉軟鍵盤..)
1、設定對話方塊外部的背景為完全透明: 在onStart()方法中加入以下程式碼: @Override public void onStart() { super.onStart(); /** * 將對話方塊
dwz問題之動態生成的查詢帶回,點選沒有彈出彈框(動態生成的dom,點選不能彈出dialog)
一、問題 頁面通過點選事件,生成一個查詢帶回按鈕,點選這個按鈕,應該彈出彈框,實際上是頁面直接更換了連結。 二、原因 通過點選事件生成的按鈕,不能使用dwz的功能,原因是沒有繫結,需要再次繫結這些功能。 三、結果 在dwz的 dwz.ui.js
listview根據點選條目位置彈出軟鍵盤,內容不被遮擋,item移動到軟鍵盤上方
ItemHeight即點選的條目的高度,對,兩行程式碼,就這麼簡單。再監聽下軟鍵盤開啟放裡面就是,百度有。原生api不懂就百度。 int y = ListView.getBottom() - ItemHeight; ListView.setSelectionFromTop(Postion + L
彈出對話方塊時,點選“取消”表單仍然提交的解決方法
大家在實際工作中用js的時候可能會遇到這種情況:confirm()彈出的對話方塊,當用戶點選“取消”的時候,表單仍然提交的問題; 一般來說這種問題產生的原因有一下幾點:1:在判斷comfirm ()為“取消”的時候,我們沒有返回false;即:if(!comfirm(“確定要提交表單嗎?”)){ &
Jquery 點選圖片在彈出層顯示大圖 (很好用)
效果圖片: 1.點選前的效果: 2.點選後的效果: html程式碼: <td width="350"> <img height="100" width="100" src="http://or7y3wqnj.bkt.clouddn.com/${f
點選下載連結彈出空白頁面
分為兩種情況 如果下載由js觸發而非a標籤,則可以在彈出的頁面中進行如下修改: <head>與</head>之間加入: <base target="tempiframe" /> 在<body>&l
點選聯絡我們彈出臨時QQ對話方塊
一般企業網站或電商網站都有聯絡我們的功能。 為了能方便快速聯絡,提高使用者體驗,需要點選聯絡我們按鈕就能讓使用者與商家直接溝通。 這樣就需要用到以下程式碼: <a href="http://wpa.qq.com/msgrd?v=3&uin=商家QQ號(220xxxxxx
案例:點選li標籤彈出對應的索引
需求:點選li標籤,彈出對應的索引 先看效果: html結構: <ul id="ul1"> <li>我是li標籤1</li> <li>我是li標籤2</li> <li>