Windows 编程[10] - WM_LBUTTONDOWN、WM_LBUTTONUP 和 WM_MOUSEMOVE 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_LBUTTONDOWN 消息调用的自定义过程} procedure OnLButtonDown(h: HWND); var BrushHandle: HBRUSH; Rect: TRect; begin GetClientRect(h, Rect); ...
阅读全文
posted @
2008-04-19 11:34
万一
阅读(9875)
推荐(0) 编辑
Windows 编程[9] - WM_CLOSE 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_CLOSE 消息调用的自定义过程} procedure OnClose(h: HWND); begin if IDOK = MessageBox(h, '确认关闭吗?', '提示', MB_OKCANCEL) then DestroyWindow(h); end; ...
阅读全文
posted @
2008-04-18 22:12
万一
阅读(3387)
推荐(1) 编辑
Windows 编程[8] - WM_PAINT 消息
摘要:本例效果图: program Project1; uses Windows, Messages; {供 WM_PAINT 消息调用的自定义过程} procedure OnPaint(h: HWND); const str = 'CodeGear Delphi 2007'; var DC: HDC; ps: PAINTSTRUCT; Rect: TRect; begin ...
阅读全文
posted @
2008-04-18 21:29
万一
阅读(3522)
推荐(0) 编辑
Windows 编程[7] - WM_CREATE 消息
摘要:本次我把生成窗口的过程做了简化, 以凸现新注入的代码; 本例效果图: program Project1; uses Windows, Messages; function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result := 0; ca...
阅读全文
posted @
2008-04-18 13:59
万一
阅读(3255)
推荐(0) 编辑
Windows 编程[6] - 学习窗体生成的过程六: 最终的代码!
摘要:program Project1; uses Windows, Messages; {回调函数; 其中要处理的消息很多, 最好用 case 语句} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result := 0; case m...
阅读全文
posted @
2008-04-16 11:54
万一
阅读(3781)
推荐(0) 编辑
Windows 编程[5] - 学习窗体生成的过程五
摘要:根据前面的介绍, 可以完成一个窗口的建立了: program Project1; uses Windows, Messages; {窗口回调函数, 必须声明在使用它的程序前面} function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall; begin Result...
阅读全文
posted @
2008-04-15 23:59
万一
阅读(2968)
推荐(0) 编辑
Windows 编程[4] - 学习窗体生成的过程四
摘要:现在需要复习一下系统与窗口的消息机制: 一个程序会有一个或多个线程, 系统有一个线程队列(就是个链表)管理所有这些线程, 并为每个线程建立一个消息队列. 当消息产生时(譬如点击了窗口), 系统会把该消息放到窗口所在的消息队列, 等待窗口处理. 窗口应该时刻待命, 准备从所在的线程队列中取出消息并处理! 从消息队列中取出消息, 一般用 GetMessage 函数; 要随时取出消息, 需要用个循环,...
阅读全文
posted @
2008-04-15 22:58
万一
阅读(2929)
推荐(1) 编辑
Windows 编程[3] - 学习窗体生成的过程三
摘要:根据前面的理论, 一个窗口生成的框架应该是这个样子: program Project1; uses Windows; {前面提到的函数都来自 Windows 单元} var hWnd : THandle; {声明窗口句柄} MyWndClass: TWndClass; {声明一个窗口类型} begin //在这里设置 MyWndClass 的参数(譬如窗口图标...
阅读全文
posted @
2008-04-15 17:19
万一
阅读(3409)
推荐(0) 编辑
Windows 编程[2] - 学习窗体生成的过程二
摘要:曾经做过一个最简单的 Windows 程序: 新建一个 Delphi 控制台程序, 贴入以下代码, 即可运行.代码分析: 系统函数 MessageBox 即可生成一个消息窗口; 因为这个函数来自 Windows 单元, 需要 uses Windows;同样的道理, 我们也可以使用 ShellAPI 单元下的 ShellAbout 调用一个关于窗口:但这都是 Windows 固定模式和固定功能的窗口...
阅读全文
posted @
2008-04-15 14:22
万一
阅读(6531)
推荐(0) 编辑
Windows 编程[1] - 窗体生成的过程一
摘要:本例效果图: 新建一个控制台程序, 贴入下面代码即可运行: program Project1; uses Windows, Messages; {等待调用的过程, 用于在窗体上绘制文本} Procedure OnPaint(h: HDC); const s = 'CodeGear Delphi 2007'; begin TextOut(h, 10, 10, PChar(s),...
阅读全文
posted @
2008-04-08 18:03
万一
阅读(13871)
推荐(0) 编辑