// EditKeyBoard01Dlg.cpp: 实现文件
//
#include "stdafx.h"
#include "EditKeyBoard01.h"
#include "EditKeyBoard01Dlg.h"
#include "afxdialogex.h"
#include "MyNumKeyBoard.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ABOUTBOX };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// CEditKeyBoard01Dlg 对话框
CEditKeyBoard01Dlg::CEditKeyBoard01Dlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_EDITKEYBOARD01_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CEditKeyBoard01Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CEditKeyBoard01Dlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
END_MESSAGE_MAP()
// CEditKeyBoard01Dlg 消息处理程序
BOOL CEditKeyBoard01Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != nullptr)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CEditKeyBoard01Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CEditKeyBoard01Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CEditKeyBoard01Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
BOOL CEditKeyBoard01Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (pMsg->message == WM_LBUTTONDOWN)
{
HWND hWnd = GetSafeHwnd(); //获取当前窗口句柄
CPoint point;//定义一个用于确定光标位置的位置
GetCursorPos(&point);//获取当前光标的位置,以便使得菜单可以跟随光标
ScreenToClient(&point);
//得到窗体的控件句柄
CWnd* hControlWnd = (CWnd*)ChildWindowFromPoint(point);
if (hControlWnd)
{
UINT iID = hControlWnd->GetDlgCtrlID();
switch (iID)
{
case IDC_EDIT1: case IDC_EDIT2: case IDC_EDIT3: case IDC_EDIT4: case IDC_EDIT5:
case IDC_EDIT6:
CWnd *pParent = GetParent();
CWnd *pWnd = CWnd::FromHandle(hWnd); //通过句柄得到指针
CEdit *pedit = (CEdit*)pWnd->GetDlgItem(iID);
MyNumKeyBoard keyBoard(pParent);
keyBoard.SetEdit(pedit);
keyBoard.DoModal();
return true;
break;
}
}
}
return CDialogEx::PreTranslateMessage(pMsg);
}
没有合适的资源?快使用搜索试试~ 我知道了~
mfc按CEdit编辑框弹出自定义键盘
共46个文件
tlog:9个
h:7个
cpp:5个
3星 · 超过75%的资源 需积分: 50 27 下载量 4 浏览量
2019-12-24
12:34:10
上传
评论 2
收藏 52.1MB RAR 举报
温馨提示
多个编辑框,单击每个编辑框都要弹出数字键盘,在编辑的位置弹出,并且数据直接编辑到当前的编辑框,按自定义键盘上的数字键,所对应的数据直接显示到要编辑的对话框中,工具用的VS2017
资源推荐
资源详情
资源评论
收起资源包目录
EditKeyBoard01.rar (46个子文件)
EditKeyBoard01
Debug
EditKeyBoard01.ilk 2.05MB
EditKeyBoard01.pdb 3.03MB
EditKeyBoard01.exe 247KB
.vs
EditKeyBoard01
v15
ipch
e4d8d10b24e6ca2.ipch 116MB
.suo 43KB
Browse.VC.db 73.78MB
EditKeyBoard01.sln 1KB
EditKeyBoard01
EditKeyBoard01Dlg.h 727B
resource.h 2KB
EditKeyBoard01.cpp 3KB
EditKeyBoard01.h 538B
Debug
vc141.pdb 6.64MB
EditKeyBoard01.log 113B
EditKeyBoard01Dlg.obj 61KB
EditKeyBoard01.tlog
rc.command.1.tlog 496B
CL.read.1.tlog 109KB
link.read.1.tlog 8KB
rc.read.1.tlog 4KB
link.write.1.tlog 1KB
CL.write.1.tlog 8KB
link.command.1.tlog 2KB
EditKeyBoard01.lastbuildstate 212B
CL.command.1.tlog 4KB
rc.write.1.tlog 302B
vc141.idb 1.33MB
MyNumButton.obj 79KB
EditKeyBoard01.res 69KB
stdafx.obj 986KB
EditKeyBoard01.pch 54.19MB
EditKeyBoard01.obj 74KB
MyNumKeyBoard.obj 39KB
EditKeyBoard01.vcxproj.user 237B
stdafx.h 2KB
MyNumButton.cpp 2KB
EditKeyBoard01.aps 108KB
res
EditKeyBoard01.ico 66KB
EditKeyBoard01.rc2 684B
stdafx.cpp 183B
MyNumKeyBoard.cpp 2KB
MyNumKeyBoard.h 1010B
MyNumButton.h 270B
EditKeyBoard01.vcxproj 10KB
EditKeyBoard01.rc 14KB
targetver.h 299B
EditKeyBoard01Dlg.cpp 4KB
EditKeyBoard01.vcxproj.filters 2KB
共 46 条
- 1
资源评论
- zhaoming2623502021-03-31骗子 ,骗分的,都不要下载
- 就不用昵称2021-04-22可以用的,没问题,就是才疏学浅还没研究明白到底怎么嵌进自己的程序里,手动捂脸
gch123456
- 粉丝: 22
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功