⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.h

📁 闹钟的c源程序
💻 H
字号:
//这是一个小闹钟sdk程序,支持添加,俢改,删除响铃事件,到点响铃、对话框提醒。
//倪梓鹏 2003/5/14
#include <windows.h> 
#include <commctrl.h>//注意这个头文件,要想使用扩展的一些控件就要用这个头文件
#pragma comment(lib,"comctl32.lib")//编译时增加comctl32.lib,里面有扩展控件的接口
#include "resource.h"
#include "List.h"
#define iColMax 4
//=================================================================================
//listview控件添加项目
//iItem为纵向列数,iSubItem为横向列数,lpstr为显示内容
//成功返回TRUE,失败则返回FALSE
BOOL AddItem(HWND hWndListView, int iItem,int iSubItem, LPSTR lpstr); 
//-----------------------------------------------------------------------
//初始化控件ListView表头
//iCol为横向列序数,iWidth为某列宽度,lpstr为显示内容
//成功返回TRUE,失败则返回FALSE
BOOL InitListViewColumns(HWND hListView, int iCol, int iWidth, LPSTR lpstr) ;
//-----------------------------------------------------------------------
//选择ListView控件的某一项
//hlistview 是listview 控件句柄
//成功返回该项索引,失败则返回-1
int GetSelectItem(HWND hListView);
//BOOL GetSelectItem(HWND hListView, TCHAR *s);
//-----------------------------------------------------------------------
//删除ListView控件的某一项
//hlistview 是listview 控件句柄,ipos该项索引, L为表
//成功返回TRUE,失败则返回FALSE
BOOL DelItem(HWND hListView, int ipos, EVENTLIST &L);
//-----------------------------------------------------------------------
//俢改ListView控件的某一项前的初始化工作
//hMaindlg是主窗口句柄,hChildDlg是子对话框句柄
//成功返回TRUE,失败则返回FALSE
BOOL MordifySetting(HWND hMaindlg, HWND hChildDlg );
//-----------------------------------------------------------------------
//获得要俢改的ListView控件的某一项信息在链表中的位置
//hMaindlg是主窗口句柄,hdlg是子对话框句柄, L是表
LPEVENTNODE MordifySetting(HWND hMaindlg,HWND hdlg, EVENTLIST &L );
//-----------------------------------------------------------------------
//响铃时间控制函数,SetTimer最后的参数
VOID APIENTRY TimeEventProc(HWND, UINT, UINT, DWORD);
//-----------------------------------------------------------------------
//DialogBox消息处理函数
BOOL APIENTRY lpDialogFunc (HWND, UINT, WPARAM, LPARAM) ;
//-----------------------------------------------------------------------
//主窗口过程函数
LRESULT APIENTRY WndProc (HWND, UINT, WPARAM, LPARAM) ;
//===================================================================================
//以下部分是有关对控件listview的操作
//-----------------------------------------------------------------------
BOOL  AddItem(HWND hListView, int iItem, int iSubItem, LPSTR lpstr)
{
	if( 0 == iSubItem)
	{
		LV_ITEM lvi;	
		lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;
		lvi.stateMask = 0;
		lvi.state = 0;
        lvi.iItem =  iItem;
		lvi.iSubItem = iSubItem;
		lvi.pszText = lpstr; // sends an LVN_GETDISPINFO
		if( ListView_InsertItem(hListView,(LPARAM)&lvi) == -1)
			return FALSE;
	}
	else if( 0 < iSubItem)
		ListView_SetItemText(hListView, iItem, iSubItem ,lpstr);
	
    return TRUE;
	
}
//------------------------------------------------------------------------
BOOL InitListViewColumns(HWND hListView, int iCol, int iWidth, LPSTR lpstr)
{ 
	if ( iCol <= iColMax )
	{
		LVCOLUMN lvc; 
        lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; 
		// Add the columns. 
        lvc.iSubItem = iCol;
        lvc.pszText = lpstr;	
        lvc.cx = iWidth;             // width of column in pixels
		lvc.fmt = LVCFMT_LEFT;       // left-aligned column		
		if (ListView_InsertColumn(hListView, iCol, &lvc) == -1)   
			return FALSE; 
		return TRUE; 
	}
	else 
		return FALSE;  	
} 
//-------------------------------------------------------------------------
int GetSelectItem(HWND hListView)
{
	int ipos;
	ipos = ListView_GetNextItem(hListView, -1, LVIS_SELECTED);
	return ipos;
}
//-------------------------------------------------------------------------
BOOL DelItem(HWND hListView, int ipos, EVENTLIST &L)
{
	if((GetSelectItem(hListView) == -1) || (0 == L.size))
		return FALSE;
	TCHAR szTime[256], szListViewItemText[256];
	LPEVENTNODE temp1, temp2;
    temp1 = L.head;
	ListView_GetItemText(hListView, GetSelectItem(hListView) ,0, szListViewItemText,sizeof(szListViewItemText));
	while (NULL != temp1)
	{
		wsprintf(szTime, "%d时%d分%d秒", temp1->iHour, temp1->iMin, temp1->iSecond );
		if(lstrcmp(szListViewItemText, szTime) == 0)
		{ 
			temp2 = temp1->next;
			DelListNod(L,temp1);
			temp1 = temp2;
			ListView_DeleteItem(hListView, GetSelectItem(hListView) );
		}
		else
			temp1 = temp1->next;
    }
	return TRUE;
}
//-------------------------------------------------------------------------------------------------------
BOOL MordifySetting(HWND hMaindlg, HWND hChildDlg )
{
	
	int ipos;	
	TCHAR szItemText[256], szSubItemText[256];
	ipos = GetSelectItem(GetDlgItem(hMaindlg, IDC_LISTVIEW));
	if(ipos == -1) 
		return FALSE;
	ListView_GetItemText(GetDlgItem(hMaindlg, IDC_LISTVIEW), ipos ,0, szItemText, sizeof(szItemText));
	ListView_GetItemText(GetDlgItem(hMaindlg, IDC_LISTVIEW), ipos ,1, szSubItemText, sizeof(szSubItemText));		
	SetDlgItemText(hChildDlg, IDC_EDIT, szSubItemText);
	return TRUE;
}
//------------------------------------------------------------------------------------
LPEVENTNODE GetMordifyNode(HWND hMaindlg, HWND hChildDlg, EVENTLIST L )
{
	int ipos;	
	LPEVENTNODE temp = NULL;
	TCHAR szItemText[256], szSubItemText[256], szBuffer[256];
	ipos = GetSelectItem(GetDlgItem(hMaindlg, IDC_LISTVIEW));
	if(ipos != -1)
	{
		temp = L.head;
		ListView_GetItemText(GetDlgItem(hMaindlg, IDC_LISTVIEW), ipos ,0, szItemText, sizeof(szItemText));
		ListView_GetItemText(GetDlgItem(hMaindlg, IDC_LISTVIEW), ipos ,1, szSubItemText, sizeof(szSubItemText));		
		while (NULL != temp)
		{
			wsprintf(szBuffer, "%d时%d分%d秒", temp->iHour, temp->iMin, temp->iSecond );
			if( (lstrcmp(szItemText, szBuffer) == 0)&& (lstrcmp(szSubItemText, temp->szConten) == 0))		
				break;
			temp = temp->next;
		}		
	}
	else 
		temp = NULL;
	return temp;
	
}
//--------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -