He notado un efecto extraño cuando creo una vista de lista.
Cuando creo un ListView sin crear también un botón, el elemento seleccionado en el ListView tiene un borde punteado. Sin embargo, cuando también creo un botón, el elemento seleccionado de ListView ya no tiene un borde punteado. Esto solo sucede cuando tengo un archivo de manifiesto que habilita los controles comunes 6:

Este es el código que usé para crear la ventana, el ListView y el botón:
// Create Window HWND hWnd = CreateWindowEx(0, "WinClass", "My Window", WS_OVERLAPPEDWINDOW, 261, 172, 394, 284, NULL, NULL, hInstance, NULL); // Create ListView HWND hListView = CreateWindowEx(0, WC_LISTVIEW, "", WS_CHILD | LVS_REPORT | WS_VISIBLE, 0, 0, 232, 190, hWnd, 0, GetModuleHandle(NULL), NULL); // Create Button HWND hButtonRefresh = CreateWindowEx(NULL, "BUTTON", "OK", WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, 10, 200, 110, 25, hWnd, NULL, GetModuleHandle(NULL), NULL);Nota: No tengo ningún problema con este efecto, ¡solo quiero entender por qué sucede!
Es solo porque el botón tiene el foco y la vista de lista lo perdió, haga clic en la vista de lista y los puntos deberían volver a aparecer.
Creo que el borde punteado indica el control predeterminado. En la segunda captura de pantalla, vaya a las Propiedades del botón y configure el Botón predeterminado en falso y luego debería ver el borde punteado alrededor del texto como en la primera captura de pantalla.
Para hacer esto, abra el cuadro de diálogo en la vista Recursos, seleccione el botón y elija Propiedades en el menú del botón derecho del mouse. En la ventana Propiedades, debería ver el Botón predeterminado en la sección Comportamiento; simplemente cámbielo a Falso.
Alternativamente, en el código, intente algo como esto: -
DWORD style = m_BtnOk.GetStyle(); // remove default push button style style &= ~BS_DEFPUSHBUTTON; // set the style ::SendMessage(m_BtnClose.GetSafeHwnd(), BM_SETSTYLE, (WPARAM)style, (LPARAM)TRUE);Como otros han indicado, su propósito es indicar el enfoque de entrada. Si mueve la pestaña alrededor de cualquier forma nativa, verá que el rectángulo salta alrededor de los índices configurados por el desarrollador.
La razón por la que aparece es porque tiene un TabStop . Como solo hay un elemento en el primer ejemplo, solo hay una posibilidad para una tabulación, por lo que se indica con el rectángulo. Juega con la propiedad TabStop , Tab alrededor, mira qué cambios.