首页  编辑  

建立最小的应用程序

Tags: /超级猛料/API.Windows应用程序接口/其他相关/   Date Created:

***************

program project;

uses

 windows,Messages;

{$R *.RES}

const

 appname='abc';

var

 aMessage:tmsg;

 hwindow,button1,button2:hwnd;

function WindowProc(window:hwnd;amessage,wparam,lparam:longint):longint;stdcall;export;

begin

 windowproc:=0;

 case amessage of

   WM_DESTROY:

   begin

     destroywindow(button1);

     destroywindow(button2);

     PostQuitMessage(0);

     exit;

   end;

   wm_command:

   if lparam=button1 then

   begin

       MessageBox(hwindow,'fksd','kfdsl',MB_OK+MB_ICONINFORMATION);

   end;

 end;

 windowproc:=defwindowproc(window,aMessage,wParam,lParam);

end;

function WinRegister:boolean;

var

 WindowClass:TWndClass;

begin

 WindowClass.style:=cs_hredraw or cs_vredraw ;

 windowclass.lpfnWndProc:=@windowProc;

 windowClass.cbClsExtra:=0;

 windowClass.cbWndExtra:=0;

 windowclass.hInstance:=hinstance;

 windowclass.hIcon:=LoadIcon(0,IDI_APPLICATION);

 windowclass.hCursor:=LoadCursor(0,IDC_ARROW);

 windowclass.hbrBackground:=COLOR_BTNSHADOW;

 windowclass.lpszMenuName:=nil;

 windowclass.lpszClassName:=appname;

 result:=Registerclass(windowClass)<>0;

end;

function WinCreate:hwnd;

var

 hWindow:hwnd;

 pchartemp:pchar;

 param:tagCREATESTRUCT;

begin

 hwindow:=CreateWindowEx(WS_EX_RTLREADING or WS_EX_APPWINDOW,appname,'文件分解与合并演示程序',WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,0,0,hinstance,nil);

 if hwindow<>0 then

 begin

   param.cx:=20;

   param.cy:=20;

   param.dwExStyle:=WS_CHILD+BS_PUSHBUTTON;

   param.hInstance:=hinstance;

   param.hMenu:=0;

   param.hwndParent:=hwindow;

   param.lpszClass:='button';

   param.x:=20;

   param.y:=20;

   pchartemp:='Kingron TEMP';

   button1:=createwindow('button','合并文件',param.dwExStyle,param.y,param.y,60,30,hwindow,0,hinstance,@param);

   param.x:=40;

   param.y:=60;

   button2:=createwindow('button','分解文件',param.dwExStyle,param.y,param.y,60,30,hwindow,0,hinstance,@param);

   showwindow(hwindow,cmdshow);

   showwindow(button2,cmdshow);

   showwindow(button1,cmdshow);

   updatewindow(hwindow);

 end;

 result:=hwindow;

end;

begin

 if not winregister then

 begin

   MessageBox(0,'窗口注册失败','错误',MB_OK+MB_ICONINFORMATION);

   exit;

 end;

 hwindow:=wincreate;

 while GetMessage(aMessage,0,0,0) do

 begin

   TranslateMessage(amessage);

   DispatchMessage(aMessage);

 end;

halt(amessage.wParam);  

end.