博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年9月6日

摘要: 【前言】指定应用程序的标题高度和边框的宽度的方法有很多种。其中最普遍的方法有下面的两种:第一种:创建没有标题栏应用程序,在客户区让出一部分空间用一幅图片画一个标题栏,让人“误认为”是标题栏。第二种:处理应用程序接收到的WM_NCCALCSIZE消息,改变客户区在窗口中的位置,从而得到合适标题栏高度。不能说哪一种方法好,哪一种方法不好,其实第一种做法简单易行,而且也能做得很漂亮,但不爽的一点是就是每一次画客户区的时候总是计算坐标的起始位置;第二种方法有点麻烦(其实也不麻烦),但有一点很好,客户区不用负责标题栏重绘工作,响应WM_PAINT消息时候不用计算位置。【第二种】要想得到最准确最全面的信息 阅读全文

posted @ 2013-09-06 14:32 wlmbz 阅读(4164) 评论(0) 推荐(0) 编辑

2013年9月4日

摘要: 00413184 |. E8 77E30100 |CALL PlantsVs.00431500 ; 地上的物品00413189 |. 8D7424 10 |LEA ESI,DWORD PTR SS:[ESP+10]0041318D |. 8BD3 |MOV EDX,EBX0041318F |. E8 7C980000 |CALL PlantsVs.0041CA1000413194 |. 84C0 |TEST AL,AL00413196 |.^ 75 E8 \JNZ SHORT PlantsVs.0041318000413198 |> 8D7424 10 LEA ESI,DWORD PTR 阅读全文

posted @ 2013-09-04 13:17 wlmbz 阅读(928) 评论(0) 推荐(0) 编辑

2013年9月3日

摘要: Delphi 新推出 Delphi XE4 ,这是一个支持 iOS 应用开发的新版本。Delphi XE4 带来 Embarcadero 全新的 ARM 编译器下载地址 阅读全文

posted @ 2013-09-03 15:39 wlmbz 阅读(222) 评论(0) 推荐(0) 编辑

2013年9月2日

摘要: HGE_FRAMEFUNC:最重要的设置,每个HGE应用必须设置.游戏的主循环就是他了.类型为bool*(),返回真那么主循环退出,游戏也就结束了.否则进行必要的处理后返回假.必须在调用进入主循环函数System_Start()前调用.HGE_RENDERFUNC:游戏的渲染回调,把对象所有的渲染任务放在这吧.类型为bool*(),该回调总是返回false.一般的当HGE_FRAMEFUNC回调returnfalse后则进入HGE_RENDERFUNC回调.HGE_GFXRESTOREFUNC:渲染引擎被恢复,比如显存内存未被命中.此时就会触发此回调(虽然所有纹理材质引擎会帮你自动恢复),如果 阅读全文

posted @ 2013-09-02 18:12 wlmbz 阅读(541) 评论(0) 推荐(0) 编辑

摘要: 对于临界区,我常常在多线程编程中使用,来保护关键代码段,像下面的代码:type TClient=class private FLock: TRTLCriticalSection; public procedure Lock; procedure UnLock; constructor Create; destructor Destroy; override; end; implementation procedure TClient.Lock; begin EnterCrit... 阅读全文

posted @ 2013-09-02 17:54 wlmbz 阅读(485) 评论(3) 推荐(0) 编辑

摘要: // 相关定义Type TListData = Record FileName: String; Percent: Integer; End; PListData = ^TListData; // 需要Use CommCtrlFunction GetSubItemRect(handle, ItemsIndex, SubIndex: Integer): TRect;Begin ListView_GetSubItemRect(handle, ItemsIndex, SubIndex, 0, @Result);End;Procedure TFormMain.lvw_listCu... 阅读全文

posted @ 2013-09-02 17:47 wlmbz 阅读(745) 评论(0) 推荐(0) 编辑

2013年8月31日

摘要: LPDEVMODEpMode=newDEVMODE;//开空间DWORDdwBitsPerPel=0;//每象素所使用的显存位数(Bits)DWORDdwPelsWidth=0;//水平分辨率(点数)DWORDdwPelsHeight=0;//垂直分辨率(点数)DWORDdwDisplayFrequency=0;//显示刷新率,以赫兹为单位EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,pMode);//获得当前设备的显示模式dwBitsPerPel=pMode->dmBitsPerPel;dwPelsWidth=pMode->dmPe 阅读全文

posted @ 2013-08-31 19:18 wlmbz 阅读(1538) 评论(0) 推荐(0) 编辑

2011年4月19日

摘要: 1 unit Unit1;2 3 interface4 5 uses6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,7 Dialogs, StdCtrls, Menus;8 9 type10 TForm1 =class(TForm)11 ButtonAddMenu: TButton;12 ButtonResetMenu: TButton;13 ButtonDeleteMenu: TButton;14 procedure ButtonAddMenuClick(Sender: TObject); 阅读全文

posted @ 2011-04-19 16:51 wlmbz 阅读(330) 评论(0) 推荐(0) 编辑