窗口过程处理WndProc遇到的问题


现在遇到了一个不大不小的技术问题,想请各位大牛超牛们帮帮忙了,嘿嘿。。。

先看一下窗体的设置吧:

问题是这样的:当ScenePanel对象(类似窗体的一个容器)全屏后,按键盘上的ESC键,不能退出全屏状态了。

其中自定义的类文件如下:

ExternAPI
1 public class ExternAPI
2 {
3 [DllImport("...", EntryPoint = "...")]//这里就省却了Dll的名字和方法入口了
4 public static void WndProc(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);
5 }


 

其中:MainFrom类中在重写基类的WndProc时调用了ExternAPI的WndProc窗口处理过程,

ScenePanel类中构造函数是无参的,也重写了基类的WndProc,也调用了ExternAPI的WndProc窗口处理过程。

 

WndProc
1         protected override void WndProc(ref Message m)
2 {
3 base(ref m);
4 ExternAPI.WndProc(m.HWnd,m.Msg,m.WParam,m.LParam);
5 }

 

 

现在在处于全屏的状态下按ESC键后,消息跑到了ScenePanel容器中,想在ScenePanel中对MainFrom对象进行设置。

注:我试过把ScenePanel的构造函数改成参数是含有MainFrom 对象的,在MainFrom主窗体new (实例化)ScenePanel对象时,把this放了进去。在运行的时候,白屏了,没有出现界面。

 

现在 该怎么做好。愁死哥了,呵呵。。。希望大家帮忙解决啊。

posted @ 2011-12-05 20:35  yzhddeyan  阅读(534)  评论(0编辑  收藏  举报