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

📄 main.c

📁 一个操作系统的源码部分
💻 C
字号:
#include "stdio.h"
#include "GUI.h"
#include "String.h"
#include "message.h"

int WinProc(HWND hwnd,int message, WPARAM wParam, LPARAM lParam);
int WinProc2(HWND hwnd,int message, WPARAM wParam, LPARAM lParam);
int WinProc3(HWND hwnd,int message, WPARAM wParam, LPARAM lParam);


//----------------------------------------------------------------------------------------------------------------------------//// 任务栏窗体主入口////---------------------------------------------------------------------------------------------------------------------------- 
void WinMain3(int hInstance)
{

	S_Mes         mes;
	HWND          hWnd;
	

	hWnd=WinCreate(236,524,328,72,hInstance,WinProc3,eWinTaskBar);
	ShowWindows(hWnd,TRUE);


	while(GetMessage(&mes,hWnd,0,0))
	{	 
		DispatchMessage(&mes);
	}

}


//----------------------------------------------------------------------------------------------------------------------------//// MemScan窗体主入口////---------------------------------------------------------------------------------------------------------------------------- 
void WinMain2(int hInstance)
{
	S_Mes         mes;
	HWND          hWnd;


	hWnd=WinCreate(0,0,320,160,hInstance,WinProc2,eWinNormal);
	ShowWindows(hWnd,TRUE);

	while(GetMessage(&mes,hWnd,0,0))
	{	 
		 DispatchMessage(&mes);
	}

}


//----------------------------------------------------------------------------------------------------------------------------//// 桌面窗体主入口////---------------------------------------------------------------------------------------------------------------------------- 
void WinMain(void)
{
 
	HWND  hWnd;
	HINSTANCE hInstance=1;
	S_Mes mes;
	int   pid=0;
	

	InitScreen();

	hWnd=WinCreate(0,0,800,600,hInstance,WinProc,eWinDesktop);
	ShowWindows(hWnd,TRUE);

	pid=Fork();

	if(pid!=0) {
	   WinMain3(pid);}
	else
	{

	   while(GetMessage(&mes,hWnd,0,0))
	   {
		    DispatchMessage(&mes);
	   }
	}


}

//----------------------------------------------------------------------------------------------------------------------------//// 桌面过程回调函数////---------------------------------------------------------------------------------------------------------------------------- 

int WinProc(HWND hwnd,int message, WPARAM wParam, LPARAM lParam)
{

		switch(message)		{			case MES_KEYUP:			break;			case MES_KEYDOWN:							break;			case MES_WND_CREATE:			break;		
		}

		return DefWindowProc(hwnd,message,wParam,lParam);		
}

//HDC           BmpHdc=NULL;
//----------------------------------------------------------------------------------------------------------------------------////  MemScan过程回调函数////---------------------------------------------------------------------------------------------------------------------------- 
int WinProc2(HWND hwnd,int message, WPARAM wParam, LPARAM lParam)
{
	  HDC hdc;
		int totalpages=0,freepages=0;
    unsigned char szPages[48];
		unsigned long HoleSize=0,HoleNum=0;
    unsigned char szMemHole[48];

		switch(message)		{			case MES_KEYUP:			break;			case MES_KEYDOWN:				hdc=GetDC(hwnd);			  TextOut(hdc,8,32,"Mem Scaner");			  GetPagesInfo(&totalpages,&freepages);			  sprintf(szPages,"Total Pages : %d",totalpages);			  TextOut(hdc,8,48,szPages);        sprintf(szPages,"Free  Pages : %d",freepages);			  TextOut(hdc,8,64,szPages);			  GetMemHoleInfo(&HoleSize,&HoleNum);			  sprintf(szMemHole,"Virtual Free Mem : %ld KB",HoleSize/1024);			  TextOut(hdc,8,80,szMemHole);			  sprintf(szMemHole,"Mem     Hole Num : %ld BLOCKS",HoleNum);			  TextOut(hdc,8,96,szMemHole);			break;			case MES_WND_CREATE:				//BmpHdc=CreateBmpHdc("WNDBMPA ",320,160,1);			break;			case MES_ERASE:			break;			case MES_TIMER:			break;		
		}

		return DefWindowProc(hwnd,message,wParam,lParam);		
}

//----------------------------------------------------------------------------------------------------------------------------//// 任务栏过程回调函数////---------------------------------------------------------------------------------------------------------------------------- 
int WinProc3(HWND hwnd,int message, WPARAM wParam, LPARAM lParam)
{
	  int pid=0;

		switch(message)		{			case MES_KEYUP:			break;			case MES_KEYDOWN:							break;			case MES_MOUSE_RDOWN:        pid=Fork();			if(pid!=0){				WinMain2(pid);			}			break;			case MES_PAINT:			break;
		}

		return DefWindowProc(hwnd,message,wParam,lParam);		
}


⌨️ 快捷键说明

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