VS2005鼠标键盘事件(0814)
来源:互联网 发布:淘宝店铺装修图 编辑:程序博客网 时间:2024/06/05 08:13
从键盘读取输入
创建单窗口项目
为键盘数据创建存储区——为doc类增加CString类
class CkeyboardDoc : public CDocument
{
protected: // 仅从序列化创建
CkeyboardDoc();
DECLARE_DYNCREATE(CkeyboardDoc)
CString StringData;
CkeyboardDoc::CkeyboardDoc()
{
// TODO: 在此添加一次性构造代码
StringData = "";
}
读取击键——为view类添加事件WM_CHAR
void CkeyboardView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CkeyboardDoc *pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDoc->StringData += (char)nChar;
Invalidate();
CView::OnChar(nChar, nRepCnt, nFlags);
}
void CkeyboardView::OnDraw(CDC* /*pDC*/)
{
CkeyboardDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
pDC->TextOut(0,0,pDoc->StringData);
}
在窗口中间显示文本
CRect rect;
GetWindowRect(&rect);
int x = rect.Width()/2;
int y = rect.Height()/2;
CSize size = pDC->GetTextExtent(pDoc->StringData);
x -= size.cx/2;
y -= size.cy/2;
pDC->TextOutW(x,y,pDoc->StringData);
显示光标
TEXTMETRIC textmetric;
pDC->GetTextMetrics(&textmetric);
CreateSolidCaret(textmetric.tmAveCharWidth/8,textmetric.tmHeight);
CaretPosition.x = CaretPosition.y = 0;
SetCaretPos(CaretPosition);
ShowCaret();
移动光标
pDC->TextOut(0,0,pDoc->StringData);
CSize size = pDC->GetTextExtent(pDoc->StringData);
HideCaret();
CaretPosition.x = size.cx;
SetCaretPos(CaretPosition);
ShowCaret();
获取/失去焦点
View类添加WM_KILLFOCUS/WM_SETFOCUS事件
鼠标事件
View类添加WM_LBUTTONDOWN事件
void CkeyboardView::OnLButtonDown(UINT nFlags, CPoint point)
{
x = point.x;
y = point.y;
CkeyboardDoc *pDoc = GetDocument();
ASSERT_VALID (pDoc);
pDoc->StringData.Empty();
Invalidate();
……
}
- VS2005鼠标键盘事件(0814)
- 鼠标事件(同前一篇键盘事件)
- javascript访问事件对象(鼠标、键盘)
- 键盘鼠标事件
- 模拟鼠标键盘事件
- 键盘和鼠标事件
- 鼠标键盘事件
- 鼠标键盘事件模拟
- Python鼠标键盘事件
- js鼠标、键盘事件
- 模拟鼠标、键盘事件
- win32 键盘 鼠标事件
- Tkinter 鼠标键盘事件
- qt鼠标 键盘事件
- linux 键盘鼠标事件
- Qt鼠标键盘事件
- Js-三大事件(鼠标事件、键盘事件、html事件)
- Qt 鼠标事件,键盘事件
- UNIX/LINUX编程学习之文件共享
- android 环境搭配 win7环境下
- 关于magento的js文件合并,,貌似bug,不知道是不是我改动别的地方改动的!!!
- WinPE下装Windows Server 2003的方法
- POJ1639 Picnic Planning(度限制生成树)
- VS2005鼠标键盘事件(0814)
- 对象建模开发流程
- UNIX/LINUX编程学习之信号1
- Boost学习系列6-多线程(上)
- How to write comment in PowerShell Script
- 搜索技术上的李彦宏
- POJ 3734 Blocks 生成函数及矩阵的解法
- ANSYS中NUMMRG命令的小技巧
- poj 2033 DP