MFC WM_CHAR
场景:MFC Dialog响应WM_CHAR讯息
MFC Dialog响应WM_CHAR消息
小白初学MFC,用MFC写了个简单计算器,实现基本+-*/功能,但只能鼠标点击,不能用键盘像windows自带计算器那样交替用键盘和按钮实现 输入数字和+-*/来计算,网上搜了下要重载PreTranslateMessage(MSG *pMsg),但还是没能实现,求高手指点。

------解决思路----------------------
http://blog.****.net/baizhengbiao/article/details/7533669
------解决思路----------------------
写一个CEdit子类,响应WM_CHAR消息。。过滤字符。。
------解决思路----------------------
你是不是重写的CDialog的Pretranslatemessage,这样是不行的。
写一个类,继承CEdit,然后响应WM_CHAR消息
------解决思路----------------------
“0;1;2;3.。。” 等按钮 ,要 用 加速键 联系起来 (Accelerator)
------解决思路----------------------
1 资源中 插入 Accelerator
如 IDA_1 1
2. HACCEL m_hAccel;
3. 对话框初始化 中 加入
m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),IDR_ACCELERATOR1));
4. 激活 加速键
::PreTransMessage(MSG* pMsg)
{
if((pMsg->Message >= WM_KEYFIRST) && (pMsg->Message >= WM_KEYLAST))
{
ASSERT(m_hAccel);
return ::TranslateAccelerator(m_hWnd,m_hAccel);
}
return CDialog::PreTransMessage( pMsg);
5. 响应 IDA_1 。。。。
如
::On1()
{
afxDump << "1\n"; // 给edit 控件 加 “1”
}
MFC Dialog响应WM_CHAR消息
小白初学MFC,用MFC写了个简单计算器,实现基本+-*/功能,但只能鼠标点击,不能用键盘像windows自带计算器那样交替用键盘和按钮实现 输入数字和+-*/来计算,网上搜了下要重载PreTranslateMessage(MSG *pMsg),但还是没能实现,求高手指点。
------解决思路----------------------
http://blog.****.net/baizhengbiao/article/details/7533669
------解决思路----------------------
写一个CEdit子类,响应WM_CHAR消息。。过滤字符。。
------解决思路----------------------
你是不是重写的CDialog的Pretranslatemessage,这样是不行的。
写一个类,继承CEdit,然后响应WM_CHAR消息
------解决思路----------------------
“0;1;2;3.。。” 等按钮 ,要 用 加速键 联系起来 (Accelerator)
------解决思路----------------------
1 资源中 插入 Accelerator
如 IDA_1 1
2. HACCEL m_hAccel;
3. 对话框初始化 中 加入
m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),IDR_ACCELERATOR1));
4. 激活 加速键
::PreTransMessage(MSG* pMsg)
{
if((pMsg->Message >= WM_KEYFIRST) && (pMsg->Message >= WM_KEYLAST))
{
ASSERT(m_hAccel);
return ::TranslateAccelerator(m_hWnd,m_hAccel);
}
return CDialog::PreTransMessage( pMsg);
5. 响应 IDA_1 。。。。
如
::On1()
{
afxDump << "1\n"; // 给edit 控件 加 “1”
}