lettersdlg.h

来自「《ATL深入解析》随书源码」· C头文件 代码 · 共 40 行

H
40
字号
// LettersDlg.h

#pragma once

class CLettersDlg : public CDialogImpl<CLettersDlg> {
public:
  // Set the CMessageMap* and the message map id
  CLettersDlg() : m_edit(this, 1) {}

BEGIN_MSG_MAP(CLettersDlg)
  MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  COMMAND_ID_HANDLER(IDOK, OnCommand)
  COMMAND_ID_HANDLER(IDCANCEL, OnCommand)
ALT_MSG_MAP(1)
  MESSAGE_HANDLER(WM_CHAR, OnEditChar)
END_MSG_MAP()

  enum { IDD = IDD_LETTERS_ONLY };

  LRESULT OnInitDialog(UINT, WPARAM, LPARAM, BOOL&) {
    // Subclass the existing child edit control
    m_edit.SubclassWindow(GetDlgItem(IDC_EDIT));

    return 1; // Let the dialog manager set the initial focus
  }

  LRESULT OnEditChar(UINT, WPARAM wparam, LPARAM, BOOL& bHandled) {
    if( isalpha((TCHAR)wparam) ) bHandled = FALSE;
    else                         MessageBeep(0xFFFFFFFF);
    return 0;
  }

  LRESULT OnCommand(WORD, UINT nID, HWND, BOOL&) {
    EndDialog(nID);
    return 0;
  }

private:
  CContainedWindowT<ATLControls::CEdit> m_edit;
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?