Надеюсь это поможет.

ю, что это может показаться дублирующим вопросом, но поверьте мне, это не так.

Я сослался на этовопрос, но не очень помог, как я пытаюсь сconsole application и сам ответчик говорит, что он не знает причину, почему ShowCursor (FALSE) не работает для консольных приложений.

этонить мне тоже не помогло.

Вот что я пробовал:

Использование ShowCursor ():

while(ShowCursor(false)>=0); //did not work

Сначала я подозревал, что это было из-за этого заявления вMSDN : When Windows starts up, it checks if you have a mouse. If so, then the cursor show count is initialized to zero; otherwise, it is initialized to negative one Я подумал, что, возможно, в последних окнах он не распознает подключенную мышь или трекпад как установленную мышь, и, возможно, именно поэтому он не работает. Следующий код показывает, что это не так:

void UsingShowCursor()
{
    CURSORINFO info;
    info.cbSize = sizeof(CURSORINFO);
    cout << ShowCursor(FALSE);
    cout << ShowCursor(FALSE);
    cout << ShowCursor(FALSE);
    GetCursorInfo( &info ); //info.flags is CURSOR_SHOWING
}

Потому что я получаю -1, -2, -3. Это означает, что начальный счетчик показа курсора, очевидно, равен 0, и он идентифицирует установленную мышь.

И еще одна вещь, которую следует отметить, чтоGetCursorInfo() также говорит, что курсор показывает.

Использование SetCursor ()

void UsingSetCursor()
{
    HCURSOR prev = SetCursor(NULL);
    int i = 0;
    while(i++<10)
    {
        cout<<i<<endl;
        Sleep(1000);
    }
    if( SetCursor(prev) == NULL ) //check if the previos cursor was NULL
        cout<<"cursor was hidden and shown after 10 secs\n";
}

Тоже не работает Это также не сработало:

SetCursor(LoadCursor(NULL, NULL));

Редактировать:

Использование LoadImage

Тоже не сработало.

void UsingLoadImage()
{
    // Save a copy of the default cursor
    HANDLE arrowHandle = LoadImage(NULL, MAKEINTRESOURCE(IDC_ARROW), IMAGE_CURSOR, 0, 0, LR_SHARED);
    HCURSOR hcArrow = CopyCursor(arrowHandle);

    HCURSOR noCursorHandle = (HCURSOR)LoadImage(NULL, IDC_ARROW, IMAGE_CURSOR,1,1,LR_SHARED); //a single pixel thick cursor so that it wont be visible

    HCURSOR noCursor = CopyCursor(noCursorHandle);
    SetSystemCursor(noCursor, OCR_NORMAL);
    int i =0 ;
    while(i++<10)
    {
        cout<<i<<endl;
        Sleep(1000);
    }
    //revert to previous cursor
    SetSystemCursor(hcArrow, OCR_NORMAL);
    DestroyCursor(hcArrow);
}

В чем может быть ошибка? Как мы можем скрыть мышь для консольного приложения?

Ответы на вопрос(1)

Ваш ответ на вопрос