现在的位置: 首页 > 综合 > 正文

C语言也能干大事板书(五)

2013年12月04日 ⁄ 综合 ⁄ 共 2099字 ⁄ 字号 评论关闭

上节课作业:学生管理系统(画原型界面布置)增、删、查(双击)、搜

接下来我们要实现小时钟。涉及到的主要知识点是定时器的使用,涉及到的C知识就是函数指针(回调函数)

使用定时器

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

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

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

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

SetTimer (hwnd, iTimerID, iMsecInterval, TimerProc) ;

19、得到当前日期:

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);

}

作业:定时关机、定时关闭显示器,如何编程实现关机、关显示器。到整天播放音乐。自学!!!“关闭显示器 API”、“关闭显示器
函数”

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

LRESULT Button_GetCheck(
    HWND hwndCtl);BST_CHECKED BST_UNCHECKED 

设置复选按钮是否选中:

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

7ListBox(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); 

9、菜单资源

1)制作好菜单资源后,在对话框的Menu属性中选择刚才制作好的对话框。

2)响应菜单操作。菜单点击后也会发送WM_COMMAND消息id就是被选择菜单的id。例子:



case IDM_QUIT:



EndDialog(hwnd,id);

作业:文件操作。自己动手写记事本。路径写固定的路径。

下节课内容:作业点评,文件对话框、播放音乐

抱歉!评论已关闭.