1键盘消息及处理:
1:键盘消息:WM_KEYDOWN-->OnKeyDown(UINT nChar,UINT nRepCnt, UINT nFlags), WM_KEYUP ,WM_CHAR 。
2:键盘插入符:(Caret)WM_SETFOCUS-->OnSetFocus(CWnd* pOldWnd), WM_KILLFOCUS。
3:时钟:WM_TIMER-->OnTimer(UINT nIDEvent),SetTimer(...),KillTimer(...)。
4:模拟键盘输入:VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtraInfo)。
5:PreTranslateMessage(MSG* pMsg)---------进行消息预处理。
6: ::FindWindow(...)可以获取当前运行程序的主窗口句柄,::FindWindowEx(...)获取子窗口句柄。
2鼠标消息及处理:
1:鼠标消息:WM_LBUTTONDOWN,WM_LBUTTONUP,WM_MOUSEMOVE
2:创建鼠标光标:PreCreateWindow(CREATESTRUCT& cs)中LoadImage(...)中加载自定义光标。SetCursor(...),Show(...)。
WM_SETCURSOR(CWnd* pWNd,...),pWnd->GetDlgCtrlID(),SetCursor(AfxGetApp()->LoadCursor(IDC_...))。
3:捕捉鼠标:HWND SetCapture(HWND hWnd),ReleaseCapture(),GetClipCursor(...)获取原鼠标活动的有效区域,
ClipCursor(...),
4:模拟鼠标输入:VOID mouse_event(DWORD dwFlags,DWORD dx,DWORD dy,DWORD dwData,ULONG_PTR dwExtraInfo);
3其它消息及处理:
1自定义消息,ON_MESSAGE(自定义消息名称,自定义消息响应函数)
PostMessage只是把消息放入队列,不阻塞当前线程。
SendMessage必须等待其它程序处理消息后才继续执行。
2使用命令范围添加消息处理函数,ON_COMMAND_RANG宏和ON_UPDATE_COMMAND_UI_RANG宏。
3CClientDC dc(this),dc.SlectObject(...)。dc.TextOut(...);
4CTIME::GetCurrentTime()函数只能获取精确到秒的系统时间。用_time结构和_ftime()函数实现毫秒级的系统时间。