程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Windows 編程[5] - 學習窗體生成的過程五

Windows 編程[5] - 學習窗體生成的過程五

編輯:Delphi

根據前面的介紹, 可以完成一個窗口的建立了:

program Project1;

uses
 Windows, Messages;

{窗口回調函數, 必須聲明在使用它的程序前面}
function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
begin
 Result := 0;
 if msg = WM_DESTROY then {當窗口銷毀時}
  PostQuitMessage(0)   {告訴 GetMessage: 退出吧!}
 else
  Result := DefWindowProc(wnd, msg, wParam, lParam); {其他消息做默認處理}
end;

{主程序}
var
 hWnd   : THandle;
 Msg    : TMsg;
 MyWndClass: TWndClass;
begin
 {指定窗口類型}
 MyWndClass.style     := CS_HREDRAW or CS_VREDRAW; {改變大小時重繪}
 MyWndClass.lpfnWndProc  := @WndProc;         {回調函數指針}
 MyWndClass.cbClsExtra  := 0;            {沒有額外的窗口類信息}
 MyWndClass.cbWndExtra  := 0;            {沒有額外的窗口信息}
 MyWndClass.hInstance   := HInstance;        {程序實例句柄}
 MyWndClass.hIcon     := 0;            {沒指定圖標}
 MyWndClass.hCursor    := LoadCursor(0, IDC_ARROW); {選用了系統提供的指針}
 MyWndClass.hbrBackground := HBRUSH(COLOR_WINDOW + 1); {背景色使用 Windows 默認的窗口顏色}
 MyWndClass.lpszMenuName := nil;           {不指定默認菜單}
 MyWndClass.lpszClassName := 'MyWindowClass';     {給窗口類型命名}

 {注冊窗口類型}
 RegisterClass(MyWndClass);

 {建立窗口並返回句柄}
 hWnd := CreateWindow('MyWindowClass',    {窗口類型名}
            '新窗口',        {標題}
            WS_OVERLAPPEDWINDOW,  {窗口的常規樣式}
            Integer(CW_USEDEFAULT), {默認水平位置}
            Integer(CW_USEDEFAULT), {默認垂直位置}
            Integer(CW_USEDEFAULT), {默認寬度}
            Integer(CW_USEDEFAULT), {默認高度}
            0,           {無父窗口}
            0,           {無主菜單}
            HInstance,       {實例句柄}
            nil           {無附加信息}
            );

 {顯示窗口}
 ShowWindow(hWnd, SW_SHOWNORMAL);
 //UpdateWindow(hWnd); {這個更新窗口要不要好像都可以}

 {消息循環}
 while(GetMessage(Msg, 0, 0, 0)) do
 begin
  TranslateMessage(Msg); {對部分鍵盤消息的再處理}
  DispatchMessage(Msg); {將消息發送給回調函數}
 end;

end.

 接下來再繼續完善這些代碼!
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved