查看完整版本: MessageBox()在Win10無法正常執行
頁: [1]

ru80qo4 發表於 2018-9-5 04:40 PM

MessageBox()在Win10無法正常執行

在Win7下執行這一段程式可以連續按B並跳出提醒視窗

但在Win10下執行這一段程式卻只會出現一次提醒視窗後面就不會有反應了

我想請問這是什麼問題與如何解決#include <cstdio>
#include <cstdlib>
#include <windows.h>

int main(void)
{
        while (true)
        {
                if (GetKeyState('B') < 0)        //檢查是否按下 B 鍵
                {
                        MessageBox(0, L"按下B鍵", L"提醒視窗", MB_OK);
                }
        }
        system("pause");
        return 0;
}<div></div>

jackyo04 發表於 2018-9-6 08:25 AM

按下去的事件應該是GetKeyState('B') > 0 對吧?{:36:}
修改一下有改善嗎?

z1090128 發表於 2018-9-8 05:12 PM

按下B鍵不是應該是GetKeyState('B') == 0嗎?  還是原本就是這樣寫?

ru80qo4 發表於 2018-9-10 02:36 AM

在Win7下使用GetKeyState('B') < 0是正確可以依照預期執行,但在Win10則必須使用GetAsyncKeyState('B') < 0才可以依照預期執行

ru80qo4 發表於 2018-9-10 02:39 AM

按鍵偵測平常我都是使用GetKeyState('B') < 0沒用過 >0  或 ==0<br><br><br><br><br><div></div>

ru80qo4 發表於 2018-9-10 02:56 AM

本帖最後由 ru80qo4 於 2018-9-10 02:59 AM 編輯

我在Win10嘗試了
GetKeyState('B') > 0可能是我不熟悉 >0 的用法,我只按一次之後,判斷我是否按下B鍵的判斷式就一直成立

GetKeyState('B') == 0則是不用按B鍵判斷式直接成立


頁: [1]