Ho notato uno strano effetto quando creo un Listview.Strano effetto durante la creazione di un ListView
Quando creo un controllo ListView senza creare anche un pulsante, l'elemento selezionato in ListView presenta un bordo punteggiato. Tuttavia, quando creo anche un pulsante, l'oggetto selezionato ListView non ha più un bordo tratteggiato. Questo accade solo quando ho un file manifesto che consente controlli comuni 6:
Questo è il codice che ho usato per creare la finestra e ListView e Button:
// 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: Non ho problemi con questo effetto, voglio solo capire perché sta succedendo!
Il "bordo tratteggiato" indica che l'elenco ha lo stato attivo di input. Presumibilmente, a seconda di quale controllo viene creato per ultimo, l'input focus viene impostato per impostazione predefinita, ovvero quando si dispone di un pulsante è presente al posto del listview. –
^questo. Come si può vedere, l'OK è bordato di blu. – Eregrith
@Jonathan Potter Ma in entrambe le immagini, faccio clic sull'oggetto ListView, quindi ListView ha il focus e non il pulsante. – paul