HideCaret () не влияет на Windows XP (x64) - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь скрыть каретку на своем элементе управления EDIT только для чтения.На Windows 10 (x64) каретка скрывается и все работает нормально.Но в Windows XP (x64) карет все еще виден.Что я не так сделал?

BOOL OnCommand(HWND hWnd, INT ID, HWND hWndCtl, UINT codeNotify) {

  switch (ID) {
    case IDC_EDIT1:
      switch (codeNotify) {
        case EN_SETFOCUS:
          HideCaret(hWndCtl);
          break;
      }
      break;
  }

  return FALSE;
}

BOOL CALLBACK DialogProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
  switch(uMsg)
  {
    case WM_COMMAND: 
      return OnCommand(hWnd, (INT)LOWORD(wParam), (HWND)lParam, (UINT)HIWORD(wParam));
  }
  return FALSE;
}

1 Ответ

0 голосов
/ 04 февраля 2019

Намного проще.

  1. Не задавайте фокус редактирования.Вы можете удалить стиль WS_TABSTOP.
  2. Ни в коем случае не используйте элемент управления Edit и используйте статический элемент управления.Это также никогда не имеет каретки.

Почему вы используете элемент управления Edit и хотите скрыть каретку.Швы, чтобы быть вопросом XY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...