小编man*_*ena的帖子

Direct2D/C++ - 使用位图进行屏幕外渲染

我已经使用C++为Windows桌面应用程序实现了Direct2D应用程序,在模拟过程中我显示了图形结果(包括点,线和椭圆).只要模拟仍在运行,我就会保留一个缓冲区来存储模拟值,每个时间间隔我只是绘制值.现在,情况是,我直接画上Hwnd(ID2D1HwndRenderTarget)就像

pRenderTarget->BeginDraw() 

for(values of simulation results)
pRenderTarget->DrawLine(....)

pRenderTarget->EndDraw()
Run Code Online (Sandbox Code Playgroud)

现在我想使用Bitmap进行屏幕外渲染/绘图,因为我需要将位图作为图像存储在计算机上(相当于拍摄/捕获截图以存储模拟结果).在这种情况下我应该如何处理(有/没有Direct2D IWICBitmapFactory- 用于以后的屏幕捕获)?

  1. 创造ID2D1HwndRenderTarget pHwndRenderTarget- 使用pD2DFactory->CreateHwndRenderTarget()

  2. 创造ID2D1BitmapFactory pBitmapFactory- 使用pHwndRenderTarget->CreateCompatibleRenderTarget()

  3. 创建一个空位图ID2D1Bitmap ID2D1Bitmap pBmp- 使用pBitmapFactory->CreateBitmap()

  4. ?? 在这个位图上我应该画线吗?如果没有,我应该在哪里画线

  5. 最后,在哪个BeginDraw()和之间EndDraw(),我应该放置位图?

  6. 后来在某些时候,我会捕获这个位图的截图.没有IWICBitmapFactory我可以做到这一点?任何代码示例将不胜感激.

c++ windows off-screen direct2d

7
推荐指数
0
解决办法
958
查看次数

注释属性的值必须是常量表达式

我有一个属性文件,我通过这样的 spring 注释读取

    @Value("${platform}")
    private String platform;
Run Code Online (Sandbox Code Playgroud)

获得平台参数后,我想根据platform参数值读取第二个参数。

    @Value("${url." + platform + ."ws}")
    private String url;
Run Code Online (Sandbox Code Playgroud)

但这会产生错误,“注释属性的值必须是常量表达式”。由于根据“平台”值有很多参数更改,因此我正在寻找通用解决方案。

java spring annotations

5
推荐指数
1
解决办法
2万
查看次数

MFC CListBox AddString - 防止自动排序

伪代码:

CListBox listBox;
CString[10] str; //consider it is initialised with valid string
for(int i=0; i<10 ; i++)
     listBox.AddString(str[i]);
Run Code Online (Sandbox Code Playgroud)

每当我CListBox使用该函数向对象添加条目/字符串时AddString(),MFC会CListBox在添加每个字符串时自动对条目进行排序.

如何明确告诉MFC保持项目的添加顺序(不进行排序).

PS:我不想使用这个功能InsertString().

谢谢!

c++ windows sorting mfc

2
推荐指数
1
解决办法
3321
查看次数

标签 统计

c++ ×2

windows ×2

annotations ×1

direct2d ×1

java ×1

mfc ×1

off-screen ×1

sorting ×1

spring ×1