、工具条、,需要使用系统提供的定时器。所有窗口类及其子类都可以创建、使用定时器。设置定时器函数:SetTimer(UNITnIDEvent,UNITnElapse,NULL);定时器定时发送WM_TIMER消息,其消息处理函数为:OnTimer(UINTnIDEvent)如果设置了一个以上的定时器,可以通过参数的值识别。终止定时器函数:KillTimer(intnIDEvent);课堂练习:++,实现自动打字的功能,即每隔一定时间往视图上输出一个字母。实现方法:在视图类中添加变量:intm_col;intm_row;intm_count;BOOLm_bauto;在视图类的构造函数中:m_bauto=FALSE;在“结束”菜单的执行语句:KillTimer(1);m_bauto=FALSE;在“开始”菜单的执行语句:m_bauto=TRUE; m_count=0; m_row=0; m_col=0; srand((unsigned)time(NULL)); SetTimer(1,100,0);WM_TIMER消息的消息处理函数:intnrand,nbase;KillTimer(1);nbase=(int)'a';nrand=rand()%26+nbase;CDC*pdc=GetDC();m_count++;CStringstr;("%c",nrand);pdc->TextOut(m_col*20,m_row*20,str);m_col++; if(m_count%10==0) {m_row++;m_col=0;}if(m_count<100) {SetTimer(1,100,0);} else {m_bauto=FALSE;}、虚拟键码和ASCII码对应键盘上每一个有意义的按键有一个唯一的标识符,这个唯一的标识符被称为扫描码。它是一组8位代码。在按键被按下、释放的时候都会产生这个扫描码。它和具体的硬件设备是相关的。虚键码是对应键盘上的键的一种具有设备无关性的标识符。VK_AVK_BVK_CVK_F1VK_F2VK_RETURNVK_DELETE消息的结构typedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMIparam;DWORDtime;POINTpt;}MSG;hwnd:标识获得消息的窗口进程的窗口句柄。message:指定消息值。wParam:消息的第一个参数。Iparam:消息的第二个参数。time:指定消息发送时的时间。pt:以屏幕坐标表示消息发送时的鼠标指针的位置。虚键码在按键被按下时候,就会产生一个键盘消息,这个消息包含按键的扫描码、虚键码以及和按键动作有关的信息。设备驱动程序把这个消息放到系统消息队列中。Windows系统从系统消息队列中取出这类消息,在把它发送到相应的应用程序的消息队列中。最后,应用程序从自己的消息队列中取出这个消息,进行相应的处理。2键盘消息的产生过程键盘消息通常只发送到当前的输入焦点窗口。处理键盘消息的前提:需要窗口不被最小化。3系统键和非系统键凡是【Alt】键和其它键一同按下的键组合称为系统键,其余是非系统键。键盘消息分为系统键消息和非系统消息。非系统键消息:当按下键盘时,Windows发送WM_KEYDOWN消息,然后发送WM_CHAR消息,当松开键盘时,发送WM_KEYUP消息。系统键消息:WM_SYSKEYDOWN、WM_SYSKEYUP和WM_SYSCHAR。
与用户交互 来自淘豆网m.daumloan.com转载请标明出处.