我已经使用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- 用于以后的屏幕捕获)?
创造ID2D1HwndRenderTarget pHwndRenderTarget- 使用pD2DFactory->CreateHwndRenderTarget()
创造ID2D1BitmapFactory pBitmapFactory- 使用pHwndRenderTarget->CreateCompatibleRenderTarget()
创建一个空位图ID2D1Bitmap ID2D1Bitmap pBmp- 使用pBitmapFactory->CreateBitmap()
?? 在这个位图上我应该画线吗?如果没有,我应该在哪里画线
最后,在哪个BeginDraw()和之间EndDraw(),我应该放置位图?
后来在某些时候,我会捕获这个位图的截图.没有IWICBitmapFactory我可以做到这一点?任何代码示例将不胜感激.
我有一个属性文件,我通过这样的 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)
但这会产生错误,“注释属性的值必须是常量表达式”。由于根据“平台”值有很多参数更改,因此我正在寻找通用解决方案。
伪代码:
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++ ×2
windows ×2
annotations ×1
direct2d ×1
java ×1
mfc ×1
off-screen ×1
sorting ×1
spring ×1