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

📄 taskbar.c

📁 详细的MiniGUI源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
				break;			case TASKBAR_OBJID_IME:				TaskBar_ImePressed(hWnd,pItem);				break;			case TASKBAR_OBJID_CLOCK:				TaskBar_ClockPressed(hWnd,pItem);				break;			}		}		pItem = pItem->pNext;	}}static void TaskBar_StartButtonPressed(	HWND hWnd,	PTaskBarItem pItem){	PWindowsTree pWin;	int iRetMsg;	pWin = (PWindowsTree)hWnd;	iRetMsg=STARTMENU_CLICKED;	iRetMsg=iRetMsg<<16;	SendNotifyMessage((HWND)(pWin->pParent), LMSG_COMMAND,(WPARAM)iRetMsg,(LPARAM)NULL);}static void TaskBar_SkbPressed(	HWND hWnd,	PTaskBarItem pItem){	pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber;	InvalidateRect(hWnd,&(pItem->rect),true);		if(pItem->iCurValue)		ShowSkbWindow();	else		HideSkbWindow();}static void TaskBar_DbcPressed(	HWND hWnd,	PTaskBarItem pItem){	pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber;	InvalidateRect(hWnd,&(pItem->rect),true);	SwitchDbc(pItem->iCurValue);}static void TaskBar_ImePressed(	HWND hWnd,	PTaskBarItem pItem){	pItem->iCurValue = (pItem->iCurValue + 1)%pItem->iTotalPictureNumber;	InvalidateRect(hWnd,&(pItem->rect),true);	//iCurValue is mapped to the ime status 	switch(pItem->iCurValue){	case IME_STATUS_ENGLISH:		SetSkbLayout(SKB_LAYOUT_STANDARD);		SwitchIme();		break;	case IME_STATUS_HANDWRITE:			SetSkbLayout(SKB_LAYOUT_HANDWRITE);		SwitchIme();		break;	default:		//other installed chinese input method		SetSkbLayout(SKB_LAYOUT_STANDARD);		SwitchIme();		break;	}	}static void TaskBar_ClockPressed(	HWND hWnd,	PTaskBarItem pItem){//	printf("!\n");}static void ClearTaskBarData(	HWND hWnd){	PWindowsTree pWin;	PTaskBar pTaskBar;	PTaskBarItem pItem,pPrev;	pWin = (PWindowsTree)hWnd;	if(!pWin)		return;	pTaskBar = (PTaskBar)(pWin->dwAddData);	if(!pTaskBar)		return;	pItem = pTaskBar->pItemHead;	pPrev = pItem;	while(pPrev){		pItem = pItem->pNext;		free(pPrev->pData);		free(pPrev);		pPrev = pItem;	}	free(pTaskBar);}static BOOL InitFixTaskBarData(	HWND hWnd){	FILE* fp;	PTaskBarItem pItem;	void* pAddr;	char* pEnvStr;	char pString[256];	PTaskBar pTaskBar;	PWindowsTree pWin;	pWin  = (PWindowsTree)hWnd;	if(!pWin)		return false;		pEnvStr=getenv("LGUI_HOME");	if(!pEnvStr)		return false;	pTaskBar = (PTaskBar)malloc(sizeof(TaskBar));	if(!pTaskBar)		return false;	memset(pTaskBar,0,sizeof(TaskBar));	pTaskBar->iTotalItem = TASKBAR_ITEMS_NUMBER;	//==========================================================	//start button	pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem));	if(!pItem)		return false;	memset(pItem,0,sizeof(TaskBarItem));	pItem->bShow = true;	pItem->iCurValue = 0;	pItem->id = TASKBAR_OBJID_STARTBUTTON;	pItem->iTotalPictureNumber =TASKBAR_STARTBUTTONBMP_NUMBER;	SetRect(&(pItem->rect),TASKBAR_STARTBUTTON_LEFT,1,		TASKBAR_STARTBUTTON_LEFT + TASKBAR_STARTBUTTON_WIDTH-1,TASKBAR_BUTTONS_HEIGHT);	pItem->pData = malloc(pItem->iTotalPictureNumber *		TASKBAR_BUTTONS_HEIGHT * TASKBAR_STARTBUTTON_WIDTH * _lGUI_iBytesDataType);	if(!pItem->pData)		return false;	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_STARTBUTTONBMP_NOPRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_STARTBUTTON_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData);	fclose(fp);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_STARTBUTTONBMP_PRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_STARTBUTTON_WIDTH,TASKBAR_BUTTONS_HEIGHT,		GetStartButtonBmpBufAddress(pItem->pData,1));	fclose(fp);		pTaskBar->pItemHead = pItem;	//=====================================================	//skb	pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem));	if(!pItem)		return false;	memset(pItem,0,sizeof(TaskBarItem));	pItem->bShow = true;	pItem->iCurValue = 0;	pItem->id = TASKBAR_OBJID_SKB;	pItem->iTotalPictureNumber = TASKBAR_SKBBMP_NUMBER;	SetRect(&(pItem->rect),TASKBAR_SKBSWITCH_LEFT,1,		TASKBAR_SKBSWITCH_LEFT + TASKBAR_SKBSWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT);	pItem->pData = malloc(pItem->iTotalPictureNumber *		TASKBAR_BUTTONS_HEIGHT * TASKBAR_SKBSWITCH_WIDTH * _lGUI_iBytesDataType);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_SKBBMP_NOPRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_SKBSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData);	fclose(fp);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_SKBBMP_PRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_SKBSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,		GetSkbBmpBufAddress(pItem->pData,1));	fclose(fp);	pItem->pNext = pTaskBar->pItemHead;	pTaskBar->pItemHead = pItem;	//=====================================================	//Dbc	pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem));	if(!pItem)		return false;	memset(pItem,0,sizeof(TaskBarItem));	pItem->bShow = true;	pItem->iCurValue = 0;	pItem->id = TASKBAR_OBJID_DBC;	pItem->iTotalPictureNumber = TASKBAR_DBCBMP_NUMBER;	SetRect(&(pItem->rect),TASKBAR_DBCSWITCH_LEFT,1,		TASKBAR_DBCSWITCH_LEFT + TASKBAR_DBCSWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT);	pItem->pData = malloc(pItem->iTotalPictureNumber *		TASKBAR_BUTTONS_HEIGHT * TASKBAR_DBCSWITCH_WIDTH * _lGUI_iBytesDataType);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_DBCBMP_NOPRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_DBCSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData);	fclose(fp);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_DBCBMP_PRESSED);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_DBCSWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,		GetDbcBmpBufAddress(pItem->pData,1));	fclose(fp);	pItem->pNext = pTaskBar->pItemHead;	pTaskBar->pItemHead = pItem;	//=====================================================	//ime	pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem));	if(!pItem)		return false;	memset(pItem,0,sizeof(TaskBarItem));	pItem->bShow = true;	pItem->iCurValue = 0;	pItem->id = TASKBAR_OBJID_IME;	pItem->iTotalPictureNumber = TASKBAR_IMEBMP_NUMBER;	SetRect(&(pItem->rect),TASKBAR_IMESWITCH_LEFT,1,		TASKBAR_IMESWITCH_LEFT + TASKBAR_IMESWITCH_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT);	pItem->pData = malloc(pItem->iTotalPictureNumber *		TASKBAR_BUTTONS_HEIGHT * TASKBAR_IMESWITCH_WIDTH * _lGUI_iBytesDataType);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_IMEBMP_ENG);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_IMESWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData);	fclose(fp);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_IMEBMP_HANDWRITE);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_IMESWITCH_WIDTH,TASKBAR_BUTTONS_HEIGHT,		GetImeBmpBufAddress(pItem->pData,1));	fclose(fp);	pItem->pNext = pTaskBar->pItemHead;	pTaskBar->pItemHead = pItem;		pTaskBar->pItemIme = pItem;	//=====================================================	//clock	pItem = (PTaskBarItem)malloc(sizeof(TaskBarItem));	if(!pItem)		return false;	memset(pItem,0,sizeof(TaskBarItem));	pItem->bShow = true;	pItem->iCurValue = 0;	pItem->id = TASKBAR_OBJID_CLOCK;	pItem->iTotalPictureNumber = TASKBAR_CLOCKBMP_NUMBER;	SetRect(&(pItem->rect),TASKBAR_CLOCKBOX_LEFT,1,		TASKBAR_CLOCKBOX_LEFT + TASKBAR_CLOCKBOX_WIDTH - 1,TASKBAR_BUTTONS_HEIGHT);	pItem->pData = malloc(pItem->iTotalPictureNumber *		TASKBAR_BUTTONS_HEIGHT * TASKBAR_CLOCKBOX_WIDTH * _lGUI_iBytesDataType);	strcpy(pString,pEnvStr);	strcat(pString,TASKBAR_CLOCKBMP);	fp = fopen(pString,"rb");	if(!fp)		return false;	ReadBmpToBuf(fp,TASKBAR_CLOCKBOX_WIDTH,TASKBAR_BUTTONS_HEIGHT,pItem->pData);	fclose(fp);	pItem->pNext = pTaskBar->pItemHead;	pTaskBar->pItemHead = pItem;	pWin->dwAddData = (DWORD)pTaskBar;}static void* GetBmpBufAddress(	int iCounter,	void* pOrgPointer, 	int iNumber){	switch(iCounter){	case TASKBAR_OBJID_STARTBUTTON:		return GetStartButtonBmpBufAddress(pOrgPointer,iNumber);	case TASKBAR_OBJID_SKB:		return GetSkbBmpBufAddress(pOrgPointer,iNumber);	case TASKBAR_OBJID_DBC:		return GetDbcBmpBufAddress(pOrgPointer,iNumber);	case TASKBAR_OBJID_IME:		return GetImeBmpBufAddress(pOrgPointer,iNumber);	default:		return pOrgPointer;	}}static void* GetStartButtonBmpBufAddress(	void* pOrgPointer,	int iNumber){	return pOrgPointer + 		iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_STARTBUTTON_WIDTH * _lGUI_iBytesDataType;}static void* GetSkbBmpBufAddress(	void* pOrgPointer,	int iNumber){	return pOrgPointer + 		iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_SKBSWITCH_WIDTH * _lGUI_iBytesDataType;}static void* GetDbcBmpBufAddress(	void* pOrgPointer,	int iNumber){	return pOrgPointer + 		iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_DBCSWITCH_WIDTH * _lGUI_iBytesDataType;}static void* GetImeBmpBufAddress(	void* pOrgPointer,	int iNumber){	return pOrgPointer + 		iNumber * TASKBAR_BUTTONS_HEIGHT * TASKBAR_IMESWITCH_WIDTH * _lGUI_iBytesDataType;}

⌨️ 快捷键说明

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