📄 microwin.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 + -