mfc如何插入位图

2023-02-23 01:26 14次浏览 攻略

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-

相关推荐