国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
通過CEdit派生類讓MFC中的Edit支持Ctrl+A全選功能

通過CEdit派生類讓MFC中的Edit支持Ctrl+A全選功能

作者: 發(fā)布時間:2011-10-16 分類:程序設(shè)計 標(biāo)簽: 5,885人瀏覽

  MFC中的Edit控件用于輸入數(shù)據(jù),當(dāng)輸入的數(shù)據(jù)為大段數(shù)字的時候,全選功能就顯得很重要了,可偏偏在MFC中Edit控件就不支持全選,Ctrl+A不行,雙擊也不行。Ctrl+C和Ctrl+V都是默認(rèn)支持的,因此為了使用方便,我們只能自己讓Edit去支持Ctrl+A全選功能了。

  實現(xiàn)的方式也比較簡單,自己處理消息就是!Ctrl+A是一個組合消息,在檢測到A或者a按鍵按下的時候,判斷Ctrl鍵的狀態(tài),如果Ctrl鍵有效則說明用戶按下了Ctrl+A按鍵,這時候我們將Edit中內(nèi)容設(shè)置為全選即可。

  為了避免對使用的Edit一個個的進(jìn)行處理,我們直接對MFC的CEdit類動手,在《通過派生CEdit類實現(xiàn)在VC的edit控件里輸入小數(shù)》中,知蟻也曾經(jīng)做過類似的操作,我們這里采用相似的方法,那就是——通過從CEdit類派生一個新類CEditEx類讓Edit支持Ctrl+A全選功能。

  《通過派生CEdit類實現(xiàn)在VC的edit控件里輸入小數(shù)》演示了如何利用vc6.0添加一個派生類,本文將采用vs2008添加一個派生類,依次選擇:

  項目(P)->添加類(C)…

類別選“MFC”,模板選擇“MFC類”,選好后,點(diǎn)擊“添加(A)”按鈕得到下面界面。

按照圖中所示,點(diǎn)擊完成即可!

  在CEditEx類中,重寫PreTranslateMessage函數(shù),為了支持雙擊全選功能,我們同時處理WM_LBUTTONDBLCLK消息,這樣在Edit中通過雙擊也可以實現(xiàn)全選功能了。具體代碼如下:

  1. BOOL CEditEx::PreTranslateMessage(MSG* pMsg)
  2. {
  3.     if(pMsg->message == WM_KEYDOWN)
  4.     {
  5.         BOOL b = GetKeyState(VK_CONTROL) & 0×80;
  6.         if(b && (pMsg->wParam==’a'||pMsg->wParam==’A'))
  7.         {
  8.             SetSel(0,-1);
  9.             return TRUE;
  10.         }
  11.     }
  12.     return CEdit::PreTranslateMessage(pMsg);
  13. }
  14. void CEditEx::OnLButtonDblClk(UINT nFlags, CPoint point)
  15. {
  16.     SetSel(0,-1);
  17. }

  使CEditEx類生效也比較簡單,通過類向?qū)閷υ捒蛑兴行枰С諧trl+A全選功能的Edit添加一個CEditEx類型的控件變量即可!
原創(chuàng)文章請注明轉(zhuǎn)載于知蟻博客,本文地址:http://www.letuknowit.com/archives/142

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MFC限制Edit控件只輸入數(shù)字、小數(shù)點(diǎn)及失去焦點(diǎn)
CEdit響應(yīng)鼠標(biāo)雙擊事件
vc技巧????-轉(zhuǎn)載
實現(xiàn)按鈕的左鍵單擊和右鍵單擊事件 編輯框的回車鍵和ctrl+enter組合鍵消息響應(yīng)
MFC中基于對話框程序快捷鍵的實現(xiàn)
在控件中點(diǎn)確認(rèn)鍵窗口消失處理重寫PreTranslateMessage
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服