Windows使用事件驱动机制。鼠标和键盘是用户与Windows应用程序交互的最重要设备。Windows预定义了许多鼠标消息和键盘消息,MFC封装了常用消息。
1 键盘消息及其处理
键盘消息有键被按下(WM_KEYDOWN)、键被松开(弹起,WM_KEYUP)和输入字符(WM_CHAR)3种。
在windows中,键盘输入以消息的形式传递给程序的视窗消息处理程序。按下或释放一个按键均会产生一条消息,系统会将其放到与键盘输入窗口相对应的线程消息队伍列中。
2 字符消息处理
当按下一个可显示的字符(数字、字母、标点等)的键时,将先后产生键被按下(WM_KEYDOWN)、键被松开(弹起,WM_KEYUP)和输入字符(WM_CHAR)等3种消息。
MFC将WM_CHAR消息映射为ON_WM_CHAR,其对应的处理函数为OnChar()。
// C
public:
CPoint ptCharacter;//字符位置
// C
CCh5Demo3View::CCh5Demo3View()
{
// TODO: add construction code here
//初始位置设置在(0,0)
;
;
}
void CCh5Demo3View::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(nChar==13)//按下了回车键
{
//换行
;
;
SetCaretPos (ptCharacter);//将插入符移到键入点
ShowCaret ();//显示插入符
}
else
{
CClientDC dc(this);
HideCaret ();//隐藏插入符
dc.TextOu,(LPCTSTR)&nChar);//显示字符
CSize textsize;
textsize=dc.GetTextExtent((LPCTSTR)&nChar);//获取当前字符大小
//前进到下一个字符位置
;
SetCaretPos (ptCharacter);//将插入符移到键入点
ShowCaret ();//显示插入符
}
CView::OnChar(nChar, nRepCnt, nFlags);
}
3 创建键盘插入符
键盘插入符(Caret)是一个闪烁的位图(通常是一个细的垂直杠),需要定位到字符将要输入和显示的位置。键盘插入符可以使用户知道在窗口何处可进行有效的键盘输入。
void CCh5Demo3View::OnSetFocus(CWnd* pOldWnd)
{
CView::OnSetFocus(pOldWnd);
// TODO: Add your message handler code here
CreateSolidCaret(4, 20);//创建插入符
SetCaretPos (ptCharacter);//将插入符移到鼠标点
ShowCaret ();//显示插入符
}
-End-
1.文章《mfc如何插入位图》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《mfc如何插入位图》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好