HideCaret()在Windows XP(x64)上不起作用

时间:2019-02-03 13:43:46

标签: windows winapi

我正试图在我的只读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 :(得分:0)

容易得多。

  1. 不要将焦点放在编辑控件上。您可以删除WS_TABSTOP样式。
  2. 完全不要使用Edit控件,而要使用静态控件。这也从来没有插入符号。

为什么要使用“编辑”控件并要隐藏插入符号。 似乎是一个X-Y问题。