定时器相关内容.doc_第1页
定时器相关内容.doc_第2页
定时器相关内容.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、让Windows直接将定时器消息发送给程序的另一个函数。计时器函数:SetTimer(hwnd,iTimerID,iMseclnterval,TimerProc);hwnd:窗口句柄;iTimerID:定时器的ID;iMseclnterval:每隔多少毫秒调一次回调函数;TimerProc:时间到了的时候被调用的回调函数,实际是一个函数指针。回调函数:void CALLBACK TimerProc(HWND hwnd,UNIT message,UNIT iTimerID,DWORD dwTime );hwnd:窗口句柄;message:消息;iTimerID:定时器ID;dwTime:时间。例如:SetTimer(hwnd,0,1000,MyTimerProc);void CALLBACK TimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime )SYSTEMTIME time;GetLocalTime(&time);TCHAR strTime256;/%后面的0表示不够的位数补零,5是总位数wsprintf(strTime,”%04d-%02d-%02d %02d:%02d:%02d”,time.wYear,time.wMonth,timw.wDay,time.wHour,time.wMinute,time.wSecond);2、得到当前日期void GetLocalTime(LPSYSTEMTIME); /LP是指针的前缀例如:SYSTEMTIME stLocal;char chBuf256; GetLocalTime(&stLocal);/显示时间间隔Wsprintf(chBuf,TEXT(“%u%u%u %u:%u:%u:%u 周%drn”),stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute,stLocal.wSecond,stLocal.wMilliseconds,stLocal.wDayOfWeek);MessageBox(NULL,chBuf,”,MB_OK);SetTimer(hwnd,1,1000,TimerProc);例2:void CALLBACK MyTimerProc(HWND hwnd,UINT message,UINT iTimerID,DWORD dwTime )SYSTEMTIME stLocal;GetLocalTime(&stLocal);TCHAR strTime256;/%后面的0表示不够的位数补零,5是总位数wsprintf(strTime,%i年%i月%i日 %i:%i:%i,stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute,stLocal.wSecond);SetDlgItemText(hwnd,IDC_EDITTIME,strTime);3、取得复选按钮是否被选中LRESULT Button_GetCheck(HWND hwndCtl);BST_CHECKED BST_UNCHECKED(有三种状态,此为常见的2种)设置复选按钮是否被选中LRESULT Button_SetCheck(HWND hwndCtl,int check);BST_CHECKED BST_UNCHECKED技巧:正向缩进(选中代码后按“Tab”键),反向缩进(选中代码后按“Tab”+“Shift”键组合)。例如: case IDC_OK:HWND hwndCheck=GetDlgItem(hwnd,IDC_CHECK1);int checkState=Button_GetCheck(hwndCheck);if(BST_CHECKED=checkState)MessageBox(hwnd,TEXT(复选框被选中!),TEXT(),MB_OK);if(BST_UNCHECKED=checkState)MessageBox(hwnd,TEXT(复选框没有被选中!),TEXT(提示),MB_OK); break;case IDC_BUTTON1:HWND hwndCheck=GetDlgItem(hwnd,IDC_CHECK1);int checkState=Button_GetCheck(hwndCheck);if(BST_CHECKED=checkState)Button_SetCheck(hwndCheck,BST_UNCHECKED);if(BST_UNCHECKED=checkState)Button_SetCheck(hwndCheck,BST_CHECKED);break;4、ListBox(和Combo类似)(1)添加项如果采用LBS_SORT样式,那么填入清单方块最简单的方法是借助ListBox_AddString:int ListBox_AddString(HWND hwndCtl, LPCSTR ipsz);如果没有采用LBS_SORT,那么可以使用ListBox_InsertString指定一个索引值,将字符串插入到清单方块中:int ListBox_InsertString(HWND hwndCtl , int index , LPCSTR lpsz);(2)删除项int ListBox_DeleteString( HWND hwndCtl , int index);(3)取得有多少项int ListBox_GetCount( HWND hwndCtl );(4)选定某一项Int ListBox_GetCurSel( HWND hwndCtl , int index );将iParam设定为-1,则取消所有项。(5)确定目前选项的索引int ListBox_GetCurSel( HWND hwndCtl );如果没有项目被选中,那么从呼叫中传回的iIndex值为LB_ERR。(6)将某项目复制到文字缓冲区中int ListBox_GetText( HWND hwndCtl , int index , LPCTSTR lpszBuffer);5、菜单资源(1)制作好菜单资源后,在对话框的Menu属性中选择刚才制作好的对话框。(2)响应菜单操作。菜单点击后也会发送WM_COMMAND消息,id就是被选择菜单的id。例子:case I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论