我一直在搭建一個簡單的Win Api程序(使用CodeBlocks)並且遇到了一個奇怪的問題。Win API錯誤的文本框輸出
case WM_COMMAND:{
if (LOWORD(wParam) == Calculate) {
int A=0, ArrayReset = 0;
char textread[256];
SendMessage((HWND)Box1,(UINT) EM_GETLINE, (WPARAM)1, (LPARAM)&textread);
A = atoi(textread);
itoa(ArrayReset, textread, 10);
itoa(A, textread, 10);
SendMessage((HWND)Box1,(UINT) WM_SETTEXT, (WPARAM)1,(LPARAM)&textread);
(我的程序更復雜一點,但是這僅僅是顯示問題點) 現在,我所期望的代碼做的是閱讀BOX1值,將其轉換成整數,轉換它返回到char數組,並將該數組重新打印到同一個Box1上。基本上,一些轉換沒有差異的最終結果。 但是,有這個奇怪的問題。該代碼適用於單個數字的數字,但如果我輸入數字更多的數字,如12或356,則分別獲得1200和3560。如果輸入的數字大於一千,它再次正常工作。 這是一個問題,因爲我的方法重置數組的值回到0,還是它必須做一些轉換過程?
Parse1實際上應該textread。我正在複製部分代碼並更改變量以使其更易於理解。猜猜我忽略了一個。 我不確定WARAM是幹什麼的,在這個 有點新了第一個itoa調用是刪除數組中的所有以前的數據。 謝謝你的例子,但它似乎並沒有爲我工作。 有錯誤告訴我,「ISO C++禁止聲明'n'沒有類型」 和 「_itot_s'未聲明(首次使用此函數)」 – Luxor
'auto'是C++ 11中的新增功能,因此您必須使用一個較老的編譯器 –