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

📄 microwin.c

📁 一个minigui 工程框架,需要windows 下的minigui 开发环境
💻 C
字号:

#include "const.h"
#include "microwin.h"
#include "project.h"
#include "resource.h"
#include "button.h"
#include "page.h"
#include "liaison.h"
#include "queue.h"
Page*	current_main_page=0;

int	fCommSend = -1;
int	fCommRecv = -1;
HWND 	wid_fCommRecv = 0;HWND 	wid_fGlobal = 0;int recvSocket = -1;
int sendSocket = -1 ;

void* MicrowinThreadFunc()
{
	Initglobalval();
	ParselScript("widget.tch");	// project.h
	ParselRes("widget.ser"); // resource.h
	HashScript(g_page,g_list_number);
	Show_initialize(g_page,g_list_number); // me
	return NULL;
}



void ShowWindows(HWND wid)
{
	ShowWindow(wid,SW_SHOW);
}
void HideWindows(HWND wid)
{
	ShowWindow(wid,SW_HIDE);
}
void FlushWindows(HWND wid)
{
	InvalidateRect(wid,NULL,TRUE);
}



void HashScript(Page page[],int size)
{

	int i,ii;
	ButtonList buttonlist;	
	if(debug_flag)
		printf("Hash Script page : %d  size : %d!\n",&page,size);
	for(i=0;i<size;i++)
	{
		buttonlist = page[i].m_blButtonList;
		while(buttonlist)
		{
			Button* b = (Button*)buttonlist->button_p;
			Page* _page = (Page*)b->m_pParentPage;
			if(_page -> m_bStyle == SUB_PAGE)
				_page = _page->m_pParentPage;
			b->own_page = _page;

			if(b->m_szFlipPageIndex && stricmp(b->m_szFlipPageIndex,"return") && stricmp(b->m_szFlipPageIndex,"none"))
			{
				for(ii = 0;ii<size;ii++)
				{
					if(g_list[ii].m_szPageName !=NULL && g_list[ii].m_bStyle == MAIN_PAGE)
					{
						if(b->m_szFlipPageIndex && !stricmp (g_list[ii].m_szPageName,b->m_szFlipPageIndex))
						{
							if(debug_flag)
								printf("HashScript button : %d target_page : %d !\n",b,&g_list[ii]);
							b->target_page = &g_list[ii];							
							break;
						}
					}
				}
			}
			if(b->m_szFlipPageIndex && b->m_nID !=0)
			{
				for(ii = 0;ii<size;ii++)
				{
					if(g_list[ii].m_bStyle == SUB_PAGE && b->m_nID == g_list[ii].m_nID)
					{
						if(debug_flag)
							printf("HashScript button : %d sub_page : %d !\n",b,&g_list[ii]);
						b->sub_page = &g_list[ii];
						break;
					}
				}
			}
			buttonlist = buttonlist->next;
		}
	}
}


void Show_initialize(Page page[],int size)
{
	int i;
	if(debug_flag)
		printf("Show_initialize size : %d !\n",size);
	for(i=0;i<size;i++)
	{
		if(page[i].m_grPageID !=0)
		{
			if(page[i].m_bStyle == MAIN_PAGE )
			{
				if(page[i].m_bStatus & 0x10)
					Show_page(&page[i],TRUE,FALSE,NULL);
				else
					Show_page(&page[i],FALSE,FALSE,NULL);
			}
		}
	}
}
void Show_page(Page* page,BOOL bshow,BOOL bsetting,void* target_page)
{
	if(page == NULL || page->m_grPageID == 0)
		return ;
	if(debug_flag)
		printf("Show page : page ID : %d bshow : %d : bsetting : %d : target_page : %d sub or main : %s!\n",page->m_grPageID,bshow,bsetting,target_page,(page->m_bStyle == SUB_PAGE)?"sub page":"main page");
	if(!bshow) // hide.
	{		ShowWindow(page->m_grPageID,SW_HIDE);	
		
		if(!(page->m_bStatus & 0x10))
			return ;
		if(bsetting )	
			page->m_bStatus &=~0x10;
	}
	else		// show.
	{
		ShowWindow(page->m_grPageID,SW_SHOW );		

		if(bsetting )
			page->m_bStatus |= 0x10;

		if( page->m_bStyle == SUB_PAGE)
		{
			int time_delay = 0;
			if (page->m_eFeedbackType == FEED_DURATION)
				time_delay = page->m_nDelay ;
			else 
				time_delay = 0 ;
			if(time_delay > 0 && target_page!=0)
			{
				page->target_page = target_page;
				page->m_timer = SetTimer(page->m_grPageID,GenTimerHandle(),time_delay/10);			}		}		
		else if(page->m_bStyle ==MAIN_PAGE) 
		{
			PageList pagelist;
			current_main_page = page;	
			
			pagelist = page->m_plPageList;
			while(pagelist)
			{
				Page* subpage = (Page*)pagelist->page_p;
				if(subpage)				{					if(subpage->m_bStatus & 0x10)
						Show_page(subpage,TRUE,FALSE,NULL); 
					else
						Show_page(subpage,FALSE,FALSE,NULL);
				}				pagelist = pagelist->next;				
			}
		}
	}
}

int stricmp (const char *s,const  char *t)
{
	int d = 0;
	do {
		d = toupper(*s) - toupper(*t);
	} while (*s++ && *t++ && !d);
	return (d);
}

⌨️ 快捷键说明

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