NativeWindow_01
1、
“{$O-}”关闭优化
“{$O-}”打开优化
2、
unit NativeWindow; interface uses
Windows, Messages, SysUtils; procedure CreateWindow; implementation function ProcWindow(_hWnd :HWND;
_uMsg :UINT;
_wParam :WPARAM;
_lParam :LPARAM):longint;stdcall;
var
hDc1 :HDC;
ps :PAINTSTRUCT;
begin
if (_uMsg = WM_LBUTTONUP) then
begin
MessageBox(, 'Up', '', );
end
else if (_uMsg = WM_PAINT) then
begin
hDc1 := BeginPaint(_hWnd, ps);
TextOut(hDc1, , , 'ASDFG zxcvb', strlen('ASDFG zxcvb'));
EndPaint(_hWnd, ps);
Result := ;
Exit;
end
else if (_uMsg = WM_DESTROY) then
begin
DestroyWindow(_hwnd);
PostQuitMessage(); Result := ;
Exit;
end;
Result := DefWindowProc(_hWnd, _uMsg, _wParam, _lParam);
end; {$O-}
procedure CreateWindow;
var wndcls :WNDCLASS;
hInstance :THandle;
hWnd1 :HWND;
iErr :integer;
begin
hInstance := Windows.GetModuleHandle(nil); ZeroMemory(@wndcls, sizeof(wndcls));
wndcls.cbClsExtra := ;
wndcls.cbWndExtra := ;
wndcls.hbrBackground := HBRUSH(GetStockObject(WHITE_BRUSH)); // 背景画刷
wndcls.hCursor := LoadCursor(, IDC_CROSS);
wndcls.hIcon := LoadIcon(, IDI_ERROR); // 窗口图标
wndcls.hInstance := hInstance;
wndcls.lpfnWndProc := @ProcWindow;
wndcls.lpszClassName:= 'zc20110929';
wndcls.lpszMenuName := nil;
wndcls.style := CS_HREDRAW or CS_VREDRAW;
RegisterClass(wndcls); hWnd1 := CreateWindowEx(
WS_EX_CLIENTEDGE,
wndcls.lpszClassName,
'ZC Window',
WS_OVERLAPPEDWINDOW,
, ,
, ,
,
, //g_hMenu,
hInstance,
);
if (hWnd1 = ) then
iErr := GetLastError; // ShowWindow(hWnd1, SW_SHOWNORMAL);
UpdateWindow(hWnd1);
end;
{$O+} end.
3、
NativeWindow_01的更多相关文章
随机推荐
- 动态代理:JDK原生动态代理(Java Proxy)和CGLIB动态代理原理+附静态态代理
本文只是对原文的梳理总结,以及自行理解.自己总结的比较简单,而且不深入,不如直接看原文.不过自己梳理一遍更有助于理解. 详细可参考原文:http://www.cnblogs.com/Carpenter ...
- link options and how g++ is invoked gcc g++
yum install gcc yum install gcc-c++ yum reinstall gcc gcc-c++ Downloading packages:(1/2): gcc-c++-4. ...
- sqlalchemy笔记
http://jzqt.github.io/2015/12/29/SQLAlchemy%E7%AC%94%E8%AE%B0/ 用SQLAlchemy做ORM也有一段时间了,总结一下用过的一些地方. 连 ...
- linux里的CPU负载
昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...
- golang strings.Split的疑问
先看下面的代码 func main() { fmt.Println("Hello, 世界") cc:=[...]int{} b:="" a:=strings.S ...
- 聊天软件项目UDP升级版
import java.net.*; import java.io.*; class UdpSend2 { public static void main(String[] args) throws ...
- Ubuntu学习笔记1-基本部分
Vim相当于vi的升级版 Find p*.txt支持查找通配符 Echo 回显命令 echo hello >1.txt 追加命令,不覆盖 echo hello >1.txt 覆盖命 ...
- nfs服务、crond服务
一.nfs服务 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系 ...
- insert获取主键、联合关联查询
联合查询
- redis 笔记04 服务器、复制
服务器 1. 一个命令请求从发送到完成主要包括以下步骤: 1). 客户端将命令请求发送给服务器 2). 服务器读取命令请求,并分析出命令参数 3). 命令执行器根据参数查找命令的实现函数,然后执行实现 ...