首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 實現以 Enter 鍵切換輸入焦點的完整指南

     編輯:關於VC++

在 Windows 程式設計中,Tab 鍵是預設的焦點切換鍵,但許多使用者習慣使用 Enter 鍵來在輸入欄位間移動。在 Delphi 或 VB 中實現此功能相對簡單,但在 VC++ 中鮮少見到相關資料。經過反覆嘗試,筆者找到了一種可行的方法,分享給有需要的開發者。

實現步驟

1. 建立基於對話框的應用程式

使用 AppWizard 建立一個基於對話框的 VC++ 專案。切換到 Resource View,在對話框中插入一個編輯框,並修改其 Styles 屬性,勾選 Multiline 和 Want Return 兩項。

2. 建立自定義編輯框類別

在 ClassWizard 中選擇 Add Class,新增一個名為 CMyEdit 的類別,基類選擇 CEdit,其餘採用預設選項。

3. 處理 WM_KEYDOWN 訊息

在新生成的 CMyEdit 類別中加入 WM_KEYDOWN 的訊息映射函數,並加入以下程式碼:

void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // TODO: Add your message handler code here and/or call default
    if (nChar == VK_RETURN) // 檢測 Enter 鍵
    {
        CDialog* pWnd = (CDialog*)GetParent(); // 取得對話框指標
        pWnd->NextDlgCtrl(); // 切換到下一個輸入焦點
    }
    CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}

4. 關聯控制項變數

在 ClassWizard 中選擇 Member Variables 選項,Class name 選擇對話框類別,Control IDs 中選擇編輯框的 ID,點選 Add Variable。在對話框中 Category 選擇 Control,Variable type 選擇剛才定義的 CMyEdit 類別。

測試結果

編譯執行程式,將游標定位到編輯框中按下 Enter 鍵,即可觀察到焦點自動切換到下一個控制項的效果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved