游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5075|回复: 10

→ 两个菜鸟问题 ←

[复制链接]

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2003-10-4 21:43:00 | 显示全部楼层 |阅读模式

int send( SOCKET s, const char *buf, int len, int flags )
int recv( SOCKET s, char *buf, int len, int flags )
这两个函数的参数[flags]表示什么意义,可取值是?效果是?

建立窗口时,wc.lpfnWndProc  = MainWndProc; 指定窗口消息处理函数
那么,有没办法在建立窗口之后,动态的让这个函数指针指向其他函数?
比如,当游戏片头时,wc.lpfnWndProc = TitleWndProc;
而当游戏结尾时,wc.lpfnWndProc = EndWndProc;

[em16]

8

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2003-10-5 19:20:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

对于你的第二个问题,我认为使用SetWindowLong和SetClassLong这两个函数修改GWL_WNDPROC参数就可以了

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2003-10-5 20:16:00 | 显示全部楼层

Re: Re:→ 两个菜鸟问题 ←

MatrixBoy2003: Re:→ 两个菜鸟问题 ←

对于你的第二个问题,我认为使用SetWindowLong和SetClassLong这两个函数修改GWL_WNDPROC参数就可以了


这两个函数怎么用?能给个简单例子吗?谢

8

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2003-10-5 21:07:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

//新的处理函数
LRESULT CALLBACK MyProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        if(message==WM_KEYDOWN){
                MessageBox(hWnd,"Ok","",MB_OK);
        }
        return DefWindowProc(hWnd, message, wParam, lParam);
}

//在你要修改的地方
SetWindowLong(hWnd,GWL_WNDPROC,(LONG)MyProc);

还有,纠正一下假如使用SetClassLong修改,参数应该是GCL_WNDPROC

19

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
QQ
发表于 2003-10-5 23:26:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

回答你的第一个问题,一般来说起名叫flag这个名字的变量通常都是用来标示某些状态的,比如说我要来通过一个变量记录一个物体是否存在,那我就可以定义一个叫flag的变量,当那个物体存在的时候,这个变量的值是1,当物体不存在的时候,这个变量就是0,不过,一般的时候这种类型的变量会定义为BOOL,而不是int,但是具体的应用要看具体的程序而定了

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2003-10-6 01:14:00 | 显示全部楼层

Re: Re:→ 两个菜鸟问题 ←

MatrixBoy2003: Re:→ 两个菜鸟问题 ←
//在你要修改的地方
SetWindowLong(hWnd,GWL_WNDPROC,(LONG)MyProc);

还有,纠正一下假如使用SetClassLong修改,参数应该是GCL_WNDPROC


十分感谢! etWindowLong和SetClassLong,这两个的效果都一样吗?

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2003-10-6 12:44:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

flag定义成BOOL的会不会不安全呢?

8

主题

29

帖子

29

积分

注册会员

Rank: 2

积分
29
发表于 2003-10-6 17:45:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

你可以亲自尝试以下SetClassLong函数,其实用SetWindowLong就可以了

11

主题

274

帖子

669

积分

高级会员

Rank: 4

积分
669
发表于 2003-10-14 10:52:00 | 显示全部楼层

Re:→ 两个菜鸟问题 ←

flag是标志参数

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2003-10-14 23:03:00 | 显示全部楼层

Re: → 两个菜鸟问题 ←

我知道flag是标志参数.
但问题是,它的设定起什么作用? 我一般取0的,若是1,效果会有什么不同呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-4-18 03:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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