小编Nic*_*ick的帖子

另一种在C++中测试枚举值的方法

在C中,我可以使用if/else语句测试枚举的值.例如:

enum Sport {Soccer, Basket};


Sport theSport = Basket;

if(theSport == Soccer)
{
   // Do something knowing that it is Soccer
}
else if(theSport == Basket)
{
   // Do something knowing that it is Basket
}
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以用C++完成这项工作吗?

c++

3
推荐指数
2
解决办法
191
查看次数

更改画布内矩形的比例

我有一个Canvas带有Rectangle

<Canvas>
   <Rettangle/>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

我希望,当我调整画布大小时,矩形保持相同的相对位置,例如:

----------------------------------------
|                                      |
|                                      |
|           ____                       |
|          |    |                      |
|          |____|                      |
|                                      |
|--------------------------------------


--------------------
|                   |
|   ___             |
|   |__|            |
|                   |
|-------------------
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

c# wpf xaml shapes wpf-controls

3
推荐指数
1
解决办法
4014
查看次数

如何将故事板应用为样式

我想像这样将 a 应用Storyboard到我的Rectangle Fill

<Rectangle Name="MyRectangle"
  Width="100"
  Height="100">
  <Rectangle.Fill>
    <SolidColorBrush x:Name="MySolidColorBrush" Color="Blue" />
  </Rectangle.Fill>
  <Rectangle.Triggers>
    <EventTrigger RoutedEvent="Rectangle.MouseEnter">
      <BeginStoryboard>
        <Storyboard>
          <ColorAnimation 
            Storyboard.TargetName="MySolidColorBrush"
            Storyboard.TargetProperty="Color"
            From="Blue" To="Red" Duration="0:0:1" />  
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </Rectangle.Triggers>
</Rectangle> 
Run Code Online (Sandbox Code Playgroud)

但我想插入Storyboarda Style,我试过这个:

<Style xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:s="clr-namespace:System;assembly=mscorlib" 
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   TargetType="{x:Type Rectangle}">

<Style.Triggers>

    <EventTrigger RoutedEvent="Shape.Loaded">
        <BeginStoryboard>
            <Storyboard>
                <ColorAnimation 
            Storyboard.TargetName="MySolidColorBrush"
            Storyboard.TargetProperty="Color"
            From="Blue" To="Red" Duration="0:0:1" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>

</Style.Triggers>

<Setter Property="Shape.Fill" Value="Blue" x:Name="MySolidColorBrush"/>

</Style>
Run Code Online (Sandbox Code Playgroud)

使用此代码:

var rect = new Rectangle();

using (FileStream stream = new FileStream("myStyle.xaml", FileMode.Open)) …
Run Code Online (Sandbox Code Playgroud)

c# wpf styles shapes storyboard

3
推荐指数
1
解决办法
5258
查看次数

快速方法将std :: list的指针转换为std :: list of value

我有一个std::list<obj*>,obj我的班级在哪里:

std::list<obj*> list_of_ptr;
list_of_ptr.push_back(new obj());
Run Code Online (Sandbox Code Playgroud)

我想将此列表转换为等效std::list<obj>,之后我不再需要了list_of_ptr.

做这项工作的最快方法是什么?

c++ containers stl

3
推荐指数
1
解决办法
735
查看次数

使用虚拟方法纠正行为

假设我在base接口中有一个纯虚方法,它返回给我一个列表something:

class base 
{ 
public:
     virtual std::list<something> get() = 0; 
}; 
Run Code Online (Sandbox Code Playgroud)

假设我有两个继承base该类的类:

class A : public base 
{ 
public:
     std::list<something> get();
}; 

class B : public base 
{ 
public:
     std::list<something> get(); 
};
Run Code Online (Sandbox Code Playgroud)

我希望只有A类可以返回一个list<something>,但我还需要有可能使用base指针获取列表,例如:

base* base_ptr = new A();
base_ptr->get();
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

我是否要返回指向此列表的指针?参考?

我是否要从类的方法返回空指针B?或者,当我尝试使用B对象获取列表时,是否要抛出异常?或者我要改变base类方法get,使它不纯,并在base课堂上做这个工作?

我还有别的事吗?

c++ polymorphism inheritance virtual-functions

3
推荐指数
1
解决办法
149
查看次数

如何强制单继承?

我有两节课:

public class A
{
}

public sealed class B : A
{
}
Run Code Online (Sandbox Code Playgroud)

我希望只有我的B类(在同一个程序集中定义A)才能继承A.
我能怎么做?

.net c# inheritance

3
推荐指数
1
解决办法
128
查看次数

如何获取 System.Threading.Timer 周期

我使用一个System.Threading.Timer对象,并设置它的周期:

// period of 1 second
var timer = new Timer(CallBack, null, 0, 1000);

...
Run Code Online (Sandbox Code Playgroud)

现在我想获取我的计时器的时间,我该怎么做?

c# timer

3
推荐指数
1
解决办法
3025
查看次数

按类型在列表中查找项目

我有一个列表,可以包含不同类型的几个元素.我需要检查在此列表中是否存在特定类型的一个或多个元素并获取其索引.

l = [1, 2, 3, myobj, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我可以通过遍历我的列表并检查每个元素的类型来实现这个目标:

for i, v in enumerate(l):
  if type(v) == Mytype:
    return i
Run Code Online (Sandbox Code Playgroud)

是否有更多的pythonic方法来实现相同的结果?

python search types list

3
推荐指数
1
解决办法
66
查看次数

屏幕捕获为 Direct2D 兼容位图

我需要捕获给定窗口HWND句柄的窗口屏幕并将捕获结果存储在ID2D1Bitmap对象中,以便通过渲染目标绘制此位图。

我怎样才能达到这个结果?

c++ rendering screenshot bitmap direct2d

3
推荐指数
1
解决办法
1643
查看次数

如何复制特征矩阵

我有两个Eigen::MatrixXd,他们总是有一排.输入矩阵是A,我想将此矩阵复制到另一个矩阵B,但矩阵之间的列数可能不同.

以下是一个例子:

A
 0.5
Run Code Online (Sandbox Code Playgroud)

我需要创建一个B包含1行和4列的矩阵,这样它将是:

B
 0.5 0.5 0.5 0.5
Run Code Online (Sandbox Code Playgroud)

但如果A是:

A
 1 0.5
Run Code Online (Sandbox Code Playgroud)

然后B

B
 1 0.5 1 0.5
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

c++ matrix eigen

3
推荐指数
1
解决办法
5089
查看次数