3
嘗試使用以下代碼獲取win32窗口的標題,然後嘗試使用wostringstream更改相同的窗口標題。下面是代碼拿到冠軍使用WM_GETTEXT獲取窗口標題
std::wstring Window::getTitle()const
{
int length = SendMessage(hwnd,WM_GETTEXTLENGTH,0,0);
if(length == -1)
return L"";
wchar_t* buffer = new wchar_t[length+1];
SendMessage(hwnd,WM_GETTEXT,length+1,(LPARAM)buffer);
std::wstring str(buffer);
delete[] buffer;
return str;
}
這裏是一個嘗試使用此代碼:而不是顯示在窗口的標題加上FRS和幀時間結束意外事件發生是
std::wostringstream oss;
while(window->isRunning)
{
oss.str(L"");
oss<<window->getTitle()<<" FPS : "<<100<<" Frame Time"<<100;
window->setText(oss.str());
}
它會顯示窗口標題,然後多次重複FPS和幀時間文本。我試圖在緩衝區末尾添加一個'\ 0':
buffer[length] = '\0';
哪個沒有解決問題。如果我從getTitle返回L「一些標題」,一切工作正常,所以我認爲問題在getTitle函數內部。
大聲笑,在這裏我試圖找出什麼是錯誤的字符緩衝區,謝謝! – 2012-04-15 03:41:28