delphi Windows 编程[1] - 窗体生成的过程一


本文整理自网络,侵删。

 
本例效果图:


新建一个控制台程序, 贴入下面代码即可运行:
program Project1;

uses
  Windows, Messages;

{等待调用的过程, 用于在窗体上绘制文本}
Procedure OnPaint(h: HDC);
const
  s = 'CodeGear Delphi 2007';
begin
  TextOut(h, 10, 10, PChar(s), Length(s));
end;

{窗口回调过程}
function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
var
  Handle: HDC;
  ps: PAINTSTRUCT;
begin
  case msg of
    WM_PAINT: begin
        Handle := BeginPaint(wnd, ps);
        OnPaint(Handle);
        EndPaint(wnd, ps);
        result := 0;
     end;
    WM_DESTROY: begin
        PostQuitMessage(0);
        result := 0;
      end;
   else
      Result := DefWindowProc(wnd, msg, wParam, lParam);
   end;
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         := LoadIcon(0, IDI_QUESTION);
   MyWndClass.hCursor       := LoadCursor(0, IDC_ARROW);
   MyWndClass.hbrBackground := HBRUSH(GetStockObject(WHITE_BRUSH));
   MyWndClass.lpszMenuName  := nil;
   MyWndClass.lpszClassName := 'MyWindowClass';

   RegisterClass(MyWndClass);

   hWnd := CreateWindow('MyWindowClass', '这是窗口标题', WS_OVERLAPPEDWINDOW,
      100, 100, 250, 150, 0, 0, HInstance, nil);

   ShowWindow(hWnd, SW_SHOWNORMAL);
   UpdateWindow(hWnd);

   while(GetMessage(Msg, 0, 0, 0)) do
   begin
      TranslateMessage(Msg);
      DispatchMessage(Msg);
   end;
end.

计划从这里出发, 了解更多底层的东西; 先弄明白这些代码吧!

相关阅读 >>

Delphi xe strpas 遇到的问题

Delphi 提取标签之间的字符串

Delphi 获取jpg文件宽度高度的方法

Delphi简单判断程序30秒没有键盘和鼠标动作示例

Delphi tidhttp获取软件版本信息

Delphi xe ttask.waitforall/waitforany 一不小心会造成内存泄露

Delphi获取图片的真实类型

Delphi链接自己的主页和邮件

Delphi xe 7 mediaplayer 在安卓里放不出声音

Delphi 从字符串中提取单词、从字符串中提取汉字的函数

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...