視窗程序下有如下代碼檢測訊息:
static int num=0;
printf("%d: %4x %s %x\n",num++, msg, GetMessageName(msg), wParam );
滑鼠和按鍵代碼如下:
case WM_LBUTTONDOWN:
{
HWND hwnd2 = FindWindow(NULL,"*無標題 - 記事本");
if( hwnd2!=NULL )
{
SetForegroundWindow ( hwnd2 );
SetActiveWindow(hwnd);
printf("本視窗%Id\n", hwnd );
printf("活動視窗%Id\n", GetActiveWindow() );
printf("鍵盤焦點%Id\n", GetFocus() );
}
return 0;
}
case WM_LBUTTONUP:
{
printf("本視窗%Id\n", hwnd );
printf("活動視窗%Id\n", GetActiveWindow() );
printf("鍵盤焦點%Id\n", GetFocus() );
return 0;
}
case WM_KEYDOWN:
{
printf("按鍵\n");
break;
}
結果如下:

每一次點擊,都會先激活本視窗,然后激活記事本,如此回圈。
問題在于,每點擊一次后,鍵盤的輸入都是到記事本里的,可是通過代碼檢測,現在活動視窗應該是本視窗啊
而且通過定時器檢測,得到的活動視窗和鍵盤焦點依然是本視窗,可為何鍵盤輸入卻在記事本中?而通過標題欄,可以看到它是活動視窗,什么情況這是?
誰能來解釋下嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/221252.html
標籤:C語言
上一篇:新手求助 資料結構 二叉樹
下一篇:關于c語言陣列的問題
