SWE 控件之间的通信

时间:11:12 2010-8-27

SWE的开发人员对于一个软件当中具有多个XAML文件,其是怎么样思考与处理这个问题的呢.

SWE: 对于都个XAML ==》 其只要一个VISUAL HOST, 其它作为其的子元素添加到它当中。
而其之间操作控件则是由另一个类处理。
==》充分对于委托的机制进行思考。
之前在傅MFC编程的时候,一个控件其是对应一个C++ 类,所以可以使用new 来完成处理。且其之前通信也是很方

便的。
感想:SWE 其是一个纯对象,而MFC当中还要句柄之类的东西。
MFC 其是使用最原始的SendMessge
而SWE其是使用类的之前通信。

情况:A,B两个控件。

1. A 对于B 控件的事件感兴趣,
2. A 对于B控件当中的子控件事件感兴趣。

对于情况1:
A 可以直接 B.AddxxxxEventHandler( Create(this,&A::Onxxx));

对于情况2:
在C# 当中,其要求B 有委托和事件。然后才B.委托 += new( xx());

其也就是需要一个中间层,才能够实现。
在SWE当中,同样也要在B当中定义一个委托且定义一个Set方法,在B的相关子控件事件处理代码当中调用此委

托。
A其就可以 B.Set(CreateDeleaget(this,&A::OnXXX));


现在遇到一个运行但不显示的问题。==》重启解决了,有时是因为没有设置
XRWindowCreateParams 的Width and height.

BSTR 有问题,

BSTR 其与CString 之间转换是很方便,而且CString 与其它字符相关类型的转换也是很方便的
以后尽量考虑使用CString.


界面的制作的层次:
其应该有多层。其的层次结构为:
原则:总分的形式
-个PAGE.XAML   --> Visual host
一个Shell UI   --> 表现为子控件

各种特定功能的XAML(S) , 其是作为子控件添加到Shell UI 当中。

子控件之间的通信由上面所讲的原则来进行==> 同类通信,就近通信。


问题:
UI与控制器的责任分离不清晰。

暂设置:
UI SHELL 其提供操作代码。
而其具体执行则是由CONTROLLER来负责。

SWE的自定义控件其为什么不能够实例化呢。

在进行事件绑定的时候,其有创建一个委托指针与没有委托指针各自的优点。
1. 委托是否需要共享

问题:
XAML2CPP.EXE 当中,自定义控件与自定义控件状态
一个自定义控件都个实例,怎么样做到异与同。

感想:
自定义控件其也是控件,在操作上要当作控件来进行使用。
控件其是具有状态的,状态其是具有行为的。
怎么样将自定义控件绑定事件,怎么样将自定义控件绑定状态。


自控件的XAML文件当中没有必要设置x:Name 属性。

使用单个DELEGATE其都遇到了问题

DELEGEAGET事件处理代码,其返回的是一个IXRDependencyObject 对象,思考其的用途与作用。

突想:
自定义控件其是一个COM,但更像一个类。==》 自定义控件之间(其也就是XAML之间) 其是通过委托来进行的

处理(JAVA 当中的AWT,SWING 其也是这样处理的). ==> 这就是SWE当中,其是怎么样处理控件之间进行数据通

信的本质与方法。

SWE当中的COM很小很灵活。SWE为我们写自定义控件提供很大帮助,我们只要写逻辑就可以

XAML2CPP.EXE

在VS2008 当中编写C++代码,在C#当中其有一个#region 的预处理命令来将代码隐藏。
而在C++当中其是使用
#pragma region XXX
#pragma endregion XXX

感觉:
C++的标准还是很有用的。C++ 要是由一家大公司开发出来就好了,其标准的制定就很容易了。且会更加容易很用

原文地址:https://www.cnblogs.com/pengxinglove/p/1810752.html