SetWindowLong函数 GetWindowLong函数

这两个函数的具体应用如下: SetWindowLong函数 GetWindowLong函数

 

Delphi 窗口化游戏

var
Thwnd:HWND;//声明变量 句柄变量
devmode1:DEVMODE;//屏幕分辨率变量
style,exstyle:longint;//窗口属性变量
begin
//得到游戏句柄
Thwnd:=findwindow('CLIENT',nil);
//设置分辨率
if EnumDisplaySettings(0,0,devmode1) then
   begin
     devmode1.dmPelsWidth:=1024;
    devmode1.dmPelsHeight:=768;
     devmode1.dmBitsPerPel:=32;
    devmode1.dmDisplayFrequency:=75;
    ChangeDisplaySettings(devmode1,0);
  end;
  //得到窗口原来的属性
  style:=GetWindowLong(Thwnd,GWL_STYLE);
  //定义新属性
  style:=WS_OVERLAPPEDWINDOW or WS_VISIBLE ;
  //更改窗口属性
  SetWindowLong(Thwnd,GWL_STYLE,style);
  //得到窗口扩展属性
  exstyle:=GetWindowLong(Thwnd,GWL_EXSTYLE);
  //定义新扩展属性
 exstyle:=WS_EX_APPWINDOW or WS_EX_WINDOWEDGE;
  //更改窗口扩展属性
 SetWindowLong(Thwnd,GWL_EXSTYLE,exstyle);
  //更改的屏幕以屏幕的0,0为坐标,大小为800*600
  SetWindowPos(Thwnd,HWND_NOTOPMOST,0,0,1020,768,SWP_SHOWWINDOW);
   ShowWindow(Thwnd,SW_SHOWNORMAL);

 

VC++代码

long style;
 long exstyle;
 DEVMODE devmode;
  HWND hwndmu=::GetForegroundWindow();
 if(EnumDisplaySettings(0, 0, &devmode))
 {
  devmode.dmPelsWidth=1024;
  devmode.dmPelsHeight=768;
  devmode.dmBitsPerPel=32;
  devmode.dmDisplayFrequency=75;
  ChangeDisplaySettings(&devmode,0);
 }
 //修改窗体的style属性
 style= GetWindowLong(hwndmu,GWL_STYLE);
 style=style | WS_CAPTION ;
 SetWindowLong(hwndmu,GWL_STYLE,style);//修改窗体的exstyle属性
 exstyle=GetWindowLong(hwndmu,GWL_EXSTYLE);
 exstyle=exstyle | WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
 SetWindowLong(hwndmu,GWL_EXSTYLE,exstyle);//设置窗体的位置,取消其最前端显示,为图简单

807,632是我自己随便设的//当然最好是先用AdjustWindowRect函数调整一下大小
 ::SetWindowPos(hwndmu,HWND_NOTOPMOST,0,0,1024,768,SWP_SHOWWINDOW);
 ::ShowWindow(hwndmu,SW_SHOWNORMAL);//修改窗体的回调函数地址到我们自己定义的回调函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值