Chinaunix首页 | 论坛 | 博客
  • 博客访问: 156478
  • 博文数量: 27
  • 博客积分: 684
  • 博客等级: 上士
  • 技术积分: 421
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-20 17:07
文章分类

全部博文(27)

文章存档

2012年(27)

分类: C/C++

2012-03-16 15:09:00

使用定时器

回调就是不是你调别人,而是别人调你。时间到了会叫你,没到的时候不会烦你。

Windows直接将定时器消息发送给您程序的另一个函数。

我们把以下的callback函数称为TimerProc(您能够选择与其它一些用语不会发生冲突的     任何名称),它只处理WM_TIMER消息:

    VOID CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime);

    SetTimer (hwnd, iTimerID, iMsecInterval, TimerProc) ;

    2、得到当前日期:

    void GetLocalTime(LPSYSTEMTIME);
    SYSTEMTIME stLocal;
    char chBuf[256];
    GetLocalTime(&stLocal);
    //
显示时间的间隔。
    wsprintf(chBuf,TEXT("%u/%u/%u %u:%u:%u:%u
%d\r\n"),
    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);

    void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)

{


SYSTEMTIME time;
GetLocalTime(&time);
TCHAR strTime[256];
//%
后面的0表示不够的位数补零,5是总位数,就这样
wsprintf(strTime,"%04d-%02d-%02d %02d:%02d:%02d",time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond);
SetDlgItemText(hwnd,IDC_EDTTIME,strTime);

}

3、取得复选按钮的是否选中:

LRESULT Button_GetCheck(
    HWND hwndCtl);
BST_CHECKED  BST_UNCHECKED

设置复选按钮是否选中:

LRESULT Button_SetCheck(
    HWND hwndCtl,    int check);
BST_CHECKED  BST_UNCHECKED

4ListBox(Combo类似)

1)添加项:

如果采用LBS_SORT样式,那么填入清单方块最简单的方法是借助ListBox_AddString

int ListBox_AddString(HWND hwndCtl,    LPCSTR lpsz);

如果没有采用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_SetCurSel( 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 IDM_QUIT:
        EndDialog(hwnd,id);

阅读(2277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~