设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: 神思
打印 上一主题 下一主题

[原创发布] 重置RM窗口过程

 关闭 [复制链接]

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

11
 楼主| 发表于 2009-11-27 01:00:53 | 只看该作者
VC6下编译OK
  1. // WndProc.cpp : Defines the entry point for the DLL application.
  2. //
  3. #include "stdafx.h"
  4. #include<stdio.h>
  5. // 窗口过程原型
  6. LRESULT CALLBACK        WndProc(HWND, UINT, WPARAM, LPARAM);
  7. // 旧的过程
  8. WNDPROC OldWndProc;
  9. // 连接库句柄
  10. HINSTANCE hInst = NULL;
  11. // RGSS
  12. long (*LoadRGSS)(LPCTSTR);
  13. BOOL BreakRM = false;
  14. // 重置过程
  15. extern "C" __declspec(dllexport) long ReSetProc(HWND hWnd)
  16. {
  17.          OldWndProc = (WNDPROC)GetWindowLong(hWnd, GWL_WNDPROC);
  18.          return SetWindowLong(hWnd, GWL_WNDPROC, (long)WndProc);
  19. }
  20. // 设置RGSS连接库
  21. extern "C" __declspec(dllexport) void SetDLL(LPCTSTR lib_name)
  22. {
  23.          hInst = LoadLibrary(lib_name);
  24.          LoadRGSS = (long (*)(LPCTSTR))GetProcAddress(hInst, "RGSSEval");
  25. }
  26. extern "C" __declspec(dllexport) void OldProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  27. {
  28.          OldWndProc(hWnd, message, wParam, lParam);
  29. }
  30. extern "C" __declspec(dllexport) void SetBreak()
  31. {
  32.          BreakRM = true;
  33. }
  34. extern "C" __declspec(dllexport) void SetMousePos(HWND hWnd, long x, long y)
  35. {
  36.         SendMessage(hWnd, WM_MOUSEMOVE, 0, MAKEWPARAM(x, y));
  37. }
  38. // 窗口过程
  39. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  40. {
  41.         char rgss[128];
  42.         sprintf(rgss, "WndProc.proc(%d,%d,%d,%d)", hWnd, message, wParam, lParam);
  43.         LoadRGSS(rgss);
  44.         if(!BreakRM)
  45.                 return OldWndProc(hWnd, message, wParam, lParam);
  46.         else
  47.                 BreakRM = false;
  48.                 return 0;
  49. }
  50. BOOL APIENTRY DllMain( HANDLE hModule,
  51.                        DWORD  ul_reason_for_call,
  52.                        LPVOID lpReserved
  53.                                          )
  54. {
  55.     return TRUE;
  56. }

复制代码
-.-
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
9049
在线时间
4376 小时
注册时间
2005-10-22
帖子
6770

开拓者贵宾

12
发表于 2009-11-27 10:52:16 | 只看该作者
感谢神思,偶去学习一下 囧
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

13
 楼主| 发表于 2009-11-27 22:37:08 | 只看该作者
呵呵...小蛇子客气了.
-.-
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-10-27
帖子
9
14
发表于 2009-11-27 23:44:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-11-17
帖子
18
15
发表于 2009-12-1 17:31:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

16
 楼主| 发表于 2009-12-2 12:41:36 | 只看该作者
用个全局变量转接过去..
-.-
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-8-15
帖子
98
17
发表于 2009-12-12 19:08:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-16 10:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表