[問題] 鍵盤游標 & 判斷TCHAR陣列是否空白
http://codepad.org/b12GpGNB
我在視窗內建了一個EDIT的文字輸入框,這是用SetWindowLong設為處理EDIT的函式:
LRESULT CALLBACK EditProc (HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
TCHAR szBuf[64];
memset(szBuf, 0, 64*sizeof(TCHAR));
switch (message){
case WM_KEYDOWN:
if(wParam == VK_RETURN)
{
GetWindowText(hwnd, szBuf, 64);
if(szBuf!=NULL)
SendMessageToMySQL(hwnd,szBuf);
SetWindowText(hwnd, TEXT(""));
SetFocus(hwnd);
SetCaretPos(2,2);
}
break;
}
return CallWindowProc (OldEdit, hwnd, message, wParam,
lParam) ;
}
但是我光處理這兩個問題就耗去超過6個小時還沒辦法,
*第一個是關於游標的問題:
其中的SetCaretPos我用Step-by-Step偵錯,執行完那一行時,確實有回到起點
可是return之後游標就會跑到下一行沒有辦法回到Edit的起點,請問要怎麼修改
*另外一個就是判斷對話框的內容是否空白就按了Enter鍵:
GetWindowText(hwnd, szBuf, 64);
if(szBuf!=NULL)
SendMessageToMySQL(hwnd,szBuf);
我元本以為這很單純的一件事情,可是比我想像中複雜很多,其中
最讓我覺得活見鬼的就是szBuf竟然不能全部初始化為零
szBuf[0]和szBuf[1]一定都是亂碼,另外不知道是不是編譯器最佳化的問題,
if(szBuf!=NULL)沒辦法插入偵錯點導致無法判斷,為什麼會有這種現象呢?
我試過去比較szBuf[0]和szBuf[1]是否不等於那兩個亂碼值,明明if裡面都
顯示false了他還繼續執行SendMessageToMySQL(hwnd,szBuf);
弄到最後不知道該如何是好。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.96.186.76
→
08/05 19:17, , 1F
08/05 19:17, 1F
→
08/05 22:36, , 2F
08/05 22:36, 2F
→
08/05 23:19, , 3F
08/05 23:19, 3F
→
08/05 23:20, , 4F
08/05 23:20, 4F
→
08/05 23:20, , 5F
08/05 23:20, 5F
→
08/05 23:21, , 6F
08/05 23:21, 6F
→
08/05 23:22, , 7F
08/05 23:22, 7F
→
08/05 23:29, , 8F
08/05 23:29, 8F
→
08/05 23:30, , 9F
08/05 23:30, 9F
→
08/05 23:31, , 10F
08/05 23:31, 10F
→
08/05 23:33, , 11F
08/05 23:33, 11F
→
08/05 23:35, , 12F
08/05 23:35, 12F
→
08/06 14:21, , 13F
08/06 14:21, 13F
→
08/06 14:51, , 14F
08/06 14:51, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章