C#游戏窗体编程

C#游戏窗体编程,第1张

可以将你的所有界面做成单独的UserControl,然后嵌入到主窗口中。实现的功能类似于Panel,还可以增加一些独特的 *** 作,如拖曳等。

这是简单的形式,如果想做更复杂的,可能就需要用图形工具全部重画界面,那就是复杂游戏的设计方式了。

在另一个窗体所属的类中定义一个函数,比如:public string GetAllControlData();功能是获取当前所有控件的数据并作为字符串返回。

每次需要另一个窗体的所有控件的数据时,就在本窗体中调用这个函数。假设本窗体为f1,另一个窗体为f2,则这样调用:string

data=f2GetAllControlData();

new出这个窗体的时候,获取主窗体的坐标,thisLocationX,thisLocationY;

当新窗体show之后,你说可以移动,没问题的,有一个locationChanged事件,这时把新窗体的坐标获取出来就可以了,再和之前主窗体的坐标可以比较了。

在发送信息的 richtextbox 里面的内容存到数据库,然后调用数据库里面的信息以后把这些信息些在上面就可以了。

richtextboxtext=richtextboxtext+"select informatin from chat where fromid ='{0}' and toid='{1}'" 这样就实现了聊天的交互了

你这里要记住,要使用time空间,调用他的 tick事件来每隔 1000 就去select一次数据库,看看有没有状态为0 的聊天数据, 有就把他 读取出来,并且updata一下他的状态为1

先用FindWindow查找到程序的窗口句柄,之后用GetWindowRect窗口的边框矩形,就可以啦!例如

procedure TForm1Button1Click(Sender: TObject);

var

hwn :THandle;

r :TRect;

begin

hwn := FindWindow('CabinetWClass','我的电脑);//XP的是'我的电脑',vista是'计算机'

if hwn <> 0 then

begin

GetWindowRect(hwn,r);

showmessage(inttostr(rLeft));

showmessage(inttostr(rTop));

end;

end;

这个问题,需要分几种情况考虑:

1 你要获取的窗体是规则窗体,标题栏是系统定义的,获取就简单了,直接使用 Windows API: GetSystemMetrics(SM_CYCAPTION); 就可以了。

2 如果你要获取的窗体是不规则的,那么就比较困难了,因为这个窗体的标题栏,很可能是自己画的,也就是说根本不是标题栏,而是某个控件模拟的,或者这个高度,要具体情况具体分析了。

一般都是用autohotkey自带的window spy,右击运行中的autohotkey的托盘图标即可看到。但并不是所有的窗体都有控件的。通常获取不了的控件都是用颜色或图像来判断位置所在。

以上就是关于C#游戏窗体编程全部的内容,包括:C#游戏窗体编程、如何从c#窗体中获取另一个窗体中所有控件输入的信息,一定要获取多个控件的数据、C# 请问如何获取当前窗体(可以拖动)的位置,从而去确定它所调用的窗体之间的相对位置。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9301952.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存