小编ood*_*123的帖子

C++ MFC 刷新窗口

我正在使用带有 MFC 的 Visual Studio 2010,我试图制作一个矩形,当设备断开连接时为红色,断开时为绿色。我用以下代码制作了矩形:

CRect lConnectStatus;
    GetDlgItem( IDC_CONNECT_STATUS ) -> GetClientRect( &lConnectStatus );
    GetDlgItem( IDC_CONNECT_STATUS ) -> ClientToScreen( &lConnectStatus );
    ScreenToClient( &lConnectStatus );
    mConnected.Create( GetSafeHwnd(), 10000 );
    mConnected.SetPosition( lConnectStatus.left, lConnectStatus.top, lConnectStatus.Width(), lConnectStatus.Height() );
    if( mDevice.IsConnected() ){
        mConnected.SetBackgroundColor(0, 255, 0);
    }
    else{mConnected.SetBackgroundColor(0, 0, 255);}
Run Code Online (Sandbox Code Playgroud)

我将此代码段插入到 OnInitDlg 方法中,并且确实出现了矩形,但在设备连接时它不会变为绿色。无论如何我可以刷新窗口以便再次执行代码并且颜色变为绿色?

c++ mfc visual-studio-2010

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

动态加权的 A* 搜索优势

我正在阅读 A* 搜索算法的变体,并遇到了动态加权。据我了解,权重应用于搜索方程,随着搜索越来越接近目标节点,权重会减小。我专门看这篇文章:http : //theory.stanford.edu/~amitp/GameProgramming/Variations.html

谁能告诉我这有什么好处?为什么你不在乎你一开始扩展了哪些节点?它是为了帮助不一定具有良好启发式的搜索吗?

谢谢

search a-star

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

C++初学者如何使用GetSystemTimeAsFileTime

我有一个程序从系统时钟读取当前时间并将其保存到文本文件.我之前使用过的GetSystemTime函数,但时间并不完全一致,例如:其中一次是32567.789,下一次是32567.780,这是时间倒退.

我正在使用这个程序将时间节省高达每秒10次.我读到GetSystemTimeAsFileTime函数更准确.我的问题是,如何将当前代码转换为使用GetSystemTimeAsFileTime函数?我试图使用FileTimeToSystemTime函数,但有同样的问题.

SYSTEMTIME st;
GetSystemTime(&st);

WORD sec = (st.wHour*3600) + (st.wMinute*60) + st.wSecond; //convert to seconds in a day
lStr.Format( _T("%d   %d.%d\n"),GetFrames() ,sec, st.wMilliseconds);

std::wfstream myfile;  
myfile.open("time.txt", std::ios::out | std::ios::in | std::ios::app );
if (myfile.is_open())
    {
     myfile.write((LPCTSTR)lStr, lStr.GetLength());
     myfile.close();
    }
else {lStr.Format( _T("open file failed: %d"), WSAGetLastError());
}           
Run Code Online (Sandbox Code Playgroud)

编辑要添加更多信息,代码会从摄像机捕获图像,该图像每秒运行10次,并节省图像拍摄到文本文件的时间.当我从第二个中减去文本文件的第一个条目,依此类推,例如:条目2-1 3-2 4-3等我得到这个图,其中x轴是条目数,y轴是减去的值.

在此输入图像描述

所有这些都应该在0.12左右,其中大部分都是.但是你可以看到它们中的很多都有所不同,有些甚至是负面的.这不是因为相机,因为相机有自己的内部时钟,没有变化.它与捕获系统时间有关.我想要的是以最高分辨率和尽可能少的噪声提取系统时间的最准确方法.

编辑2我已经接受了您的建议并再次运行程序.这是结果:

在此输入图像描述

你可以看到它比以前好很多但它仍然不对.我觉得奇怪的是它似乎非常增量.我也只绘制了时间,这是结果,其中x是条目,y是时间:

在此输入图像描述

有没有人知道什么可能导致每30帧左右出场的时间?

c++ time winapi

0
推荐指数
1
解决办法
6508
查看次数

C++轻松忽略输入的第一个词

我正在编写一个程序来逐行读取文本文件,将行值存储在向量中,进行一些处理然后写回新的文本文件.这是文本文件通常的样子:

在此输入图像描述

如您所见,有两列:一列用于帧号,另一列用于时间.我想要的只是第二列(又名时间).文本文件中可能有数百行,如果不是数千行.以前我一直在手动删除我不想做的帧编号列.所以我的问题是:是否有一种简单的方法来编辑我当前的代码,这样当我用getline()它读取文件时会跳过第一个单词而只获得第二个单词?这是我用来读取文本文件的代码.谢谢

ifstream sysfile(sys_time_dir);

//Store lines in a vector
vector<string> sys_times;
string textline;

while (getline(sysfile, textline))
{
    sys_times.push_back(textline);
}
Run Code Online (Sandbox Code Playgroud)

c++ io vector getline

0
推荐指数
1
解决办法
1527
查看次数

标签 统计

c++ ×3

a-star ×1

getline ×1

io ×1

mfc ×1

search ×1

time ×1

vector ×1

visual-studio-2010 ×1

winapi ×1