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

📄 psde.c

📁 C开发PDA程序的PC调试环境C开发PDA程序的PC调试环境C开发PDA程序的PC调试环境C开发PDA程序的PC调试环境
💻 C
字号:
/*========================================================================
 *
 *  版权所有 (C) 2000-2001 吴柏建. All Rights Reserved.
 *
 *  文件:       psde.c
 *  内容:		PSDE之演示如何使用PSDE功能函数制作PC模拟器。
 *	作者:			吴柏建。
 *	制作日期:		2000.7.28-2001.8.3
 *	修改日期:		2001..
 *
 *========================================================================*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <commdlg.h>
#include <mmsystem.h>
#include "resource.h"

#include "../psde.h"

/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---pvde.c----DLGHelpAboutProc()--------------------------------------
□   处理ABOUT对话框的消息回调函数。
□---2001.7.30---------------------------------------------------------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
long FAR PASCAL DLGHelpAboutProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_INITDIALOG:break;      
    case WM_COMMAND:if(wParam==ID_OK)PostMessage(hWnd,WM_CLOSE,0,0);break;
    case WM_CLOSE:EndDialog(hWnd, 0);break;
    default:return(0);break;               
    }
    return(1);
}
/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---pvde.c----MainProc()----------------------------------------------
□   处理主窗口的消息回调函数。
□---2001.7.30---------------------------------------------------------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
void MainProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
	switch( message )
    {
	case WM_COMMAND: 
		switch(LOWORD(wParam))
		{
		case ID_RESET:
			PSDE_Reset();
			break;
		case ID_ABOUT:
			DialogBox(PSDE_GethInstance(), MAKEINTRESOURCE(IDD_ABOUT),hWnd,(DLGPROC)DLGHelpAboutProc);
			break;
		case ID_MINIMIZED:
			ShowWindow(hWnd,SW_SHOWMINIMIZED);
			break;
		case ID_EXIT:
			PSDE_Exit();
			break;
		}
		break;
    }
}


//If the size of background bitmap("IDB_FACE") just egual to Windows size defined below,
//there is need't stretch image and program get more speed.
#define WND_WIDTH			460
#define WND_HIGH			448

//Define touchpanel size.
#define TOUCHPANEL_LEFT		70
#define TOUCHPANEL_TOP		24
#define TOUCHPANEL_WIDTH	320
#define TOUCHPANEL_HIGH		240

//Define lcd size.
#define LCD_LEFT			70
#define LCD_TOP				24
#define LCD_WIDTH			320
#define LCD_HIGH			240

/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---pvde.c----PSDE_Init()---------------------------------------------
□   PSDE模拟PDA环境初始化函数。
□---2001.7.30---------------------------------------------------------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
void PSDE_Init(void)
{
	//LCD显示缓冲区声明。
	extern unsigned char DisBuffer[76800];
	//PDA入口函数声明。
	void main(void);
	int i,x,y,a,b,ID=0;

	//--------------------------------------------------\\
	//请注册使用PSDE!
	//注册后您将有权使用PSDE开发应用程序以及随后的商业发行。
	//在未注册前PSDE有60天试用时间,试用期满后PSDE将不可用。
	//您可以访问http://www.wbj2000.com/cpsde.htm来获取注册码。
	//当您使用遇到问题或困难时可以EMAIL TO: wbjok@yahoo.com
	//--------------------------------------------------\\
	//设置PSDE的用户名和注册码。
	PSDE_SetRegCode("UserName","RegCode");

	//指定窗口背景图象。
	PSDE_SetFaceBmp("IDB_FACE");
	//指定包含有窗口中使用的按钮的状态的图象。
	PSDE_SetButtonBmp("IDB_BUTTON");

	//设置按钮按下和触摸屏点击时的模拟声音。
	PSDE_SetKeySound(IDR_WAVE_TOUCH);
	//设置按钮按下和触摸屏点击时的模拟声音开关为开。
	PSDE_SetKeySoundOnOff(1);

	//设置处理主窗口消息回调函数的指针为MainProc。
	PSDE_SetFuncWndProc(MainProc);
	//设置PDA代码入口函数的指针为main。
	PSDE_SetFuncMain(main);

	//设置窗口客户区的宽、高,是否有边框,和窗口标题。
	PSDE_InitWindow(WND_WIDTH,WND_HIGH,FALSE,"PSDE-PC");
	//设置模拟触摸屏的起点和宽高。
	PSDE_InitTouchPanel(TOUCHPANEL_LEFT,TOUCHPANEL_TOP,TOUCHPANEL_WIDTH,TOUCHPANEL_HIGH,FALSE);
	//设置模拟LCD的起点、宽高、是否放大一倍、显示缓冲扫描方式、颜色深度、显示缓冲区指针。
	PSDE_InitLcd(LCD_LEFT,LCD_TOP,LCD_WIDTH,LCD_HIGH,FALSE,0,8,DisBuffer);
	//设置FLASH的尺寸和保存FLASH数据的文件名称。
	//PSDE_InitFlashMemory(0x100000,"Flash");
	//设置ROM的尺寸和保存ROM数据的文件名称。
	//PSDE_InitRomMemory(0x800000,"Rom");

	//设置按钮。
	PSDE_AddButton(258,363,10,134,49,134,39,31,ID++);//←┘
	x=3;y=298;
	a=12;b=24;
	PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);//ESC
	for(i=0,a=47;i<4;i++,a+=19)//F1~F4
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	for(i=0,a=134;i<4;i++,a+=19)//F5~F8
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	for(i=0,a=221;i<4;i++,a+=19)//F9~F12
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	for(i=0,a=303;i<3;i++,a+=19)//Power Sleep Wake
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	for(i=0,a=12,b=48;i<15;i++,a+=19)//[~]~[←]
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	PSDE_AddButton(15,363,12,65,12,65+145,25,14,ID++);//TAB
	for(i=0,a=40,b=65;i<12;i++,a+=19)//[Q]~[}]
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	PSDE_AddButton(15,380,12,82,12,82+145,31,14,ID++);//CAPS
	for(i=0,a=46,b=82;i<11;i++,a+=19)//[A]~["]
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	PSDE_AddButton(15,397,12,99,12,99+145,39,14,ID++);//LShift
	for(i=0,a=54,b=99;i<10;i++,a+=19)//[Z]~[?]
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	PSDE_AddButton(247,397,244,99,244,99+145,50,14,ID++);//RShift
	PSDE_AddButton(15,414,12,116,12,116+145,25,14,ID++);//LCtrl
	PSDE_AddButton(272,414,12,116,12,116+145,25,14,ID++);//RCtrl
	PSDE_AddButton(43,414,40,116,40,116+145,25,14,ID++);//LWin
	PSDE_AddButton(216,414,40,116,40,116+145,25,14,ID++);//RWin
	PSDE_AddButton(71,414,68,116,68,116+145,25,14,ID++);//LAlt
	PSDE_AddButton(188,414,68,116,68,116+145,25,14,ID++);//RAlt
	PSDE_AddButton(99,414,96,116,96,116+145,86,14,ID++);//Space
	PSDE_AddButton(244,414,241,116,241,116+145,25,14,ID++);//Print
	for(b=48;b<=82;b+=17)//Print Scroll Pause Ins Home PgUp Del End PgDn
	{
		for(i=0,a=303;i<3;i++,a+=19)
		{
			PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
		}
	}
	for(b=48;b<=99;b+=17)//NumLock / * - 7 8 9 4 5 6 1 2 3
	{
		for(i=0,a=366;i<3;i++,a+=19)
		{
			PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
		}
	}
	PSDE_AddButton(325,397,322,99,322,99+145,16,14,ID++);//↑
	for(i=0,a=303,b=116;i<3;i++,a+=19)//←↓→
	{
		PSDE_AddButton(x+a,y+b,a,b,a,b+145,16,14,ID++);
	}
	PSDE_AddButton(426,346,423,48,423,48+145,16,14,ID++);//-
	PSDE_AddButton(426,363,423,65,423,65+145,16,31,ID++);//+
	PSDE_AddButton(426,397,423,99,423,99+145,16,31,ID++);//Enter
	PSDE_AddButton(407,414,404,116,404,116+145,16,14,ID++);//Del
	PSDE_AddButton(369,414,366,116,366,116+145,35,14,ID++);//0

	//设置窗口使用的图标。
	PSDE_LoadIcon(IDI_ICON);
	//设置窗口的主菜单。
	PSDE_LoadMenu(IDR_MENU);
	//设置加速键表。
	PSDE_LoadAccelerator(IDR_ACCELERATOR);
	//设置右键弹出菜单。
	PSDE_LoadPopMenu(IDR_POPMENU);
}

⌨️ 快捷键说明

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