Witam!
Ostatnio zmuszony przez życie zacząłem ogarniać WinAPI i jak to zwykle bywa napotkałem kilka problemów.

  1. Zaznaczanie elementu w ListView. Mój ListView składa się z 3 kolumn: Nazwy, Daty modyfikacji, Rozmiaru, żeby zaznaczyć całą linie użyłem LVS_EX_FULLROWSELECT. Generalnie chce żeby zaznaczony element został podświetlony (domyślnie na niebiesko), bo w tej chwili nic takiego się nie dzieje.
//Metoda tworząca mojego ListView
HWND CreateListView(HINSTANCE hInstance, HWND hWnd, POINT uPoint, SIZE uSize, UINT uId)
{
	HWND hList =  CreateWindowEx(
		WS_EX_CLIENTEDGE,
		WC_LISTVIEW,
		TEXT("ListView"),
		WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_EDITLABELS,
		uPoint.x, uPoint.y,
		uSize.cx, uSize.cy,
		hWnd,
		(HMENU)uId,
		hInstance,	
		NULL);

	ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT);

	LVCOLUMN lvc;
	lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;	

	AddColumnToListView(hList, 0, 300, TEXT("Name"), lvc);
	AddColumnToListView(hList, 1, 100, TEXT("Size:"), lvc);
	AddColumnToListView(hList, 2, 80, TEXT("Date"), lvc);

	UpdateLstView(hList, _driveInfo.path);

	return hList;
}
//Metoda obsługująca WM_NOTIFY, gdzie chcę oprogramować kilka zdarzeń.
void NotifyProcedure(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	HWND hLeftListView = GetDlgItem(hWnd, ID_LEFTLISTVIEW), hStatic;
	LPNMITEMACTIVATE lpnmItem = (LPNMITEMACTIVATE)lParam;
	wchar_t* bufText = new wchar_t[256];

	if ((((LPNMHDR)lParam)->hwndFrom) == hLeftListView)
	{
		switch (((LPNMHDR)lParam)->code)
		{
		case NM_CLICK:
			// Selection item
			//MessageBox(NULL, bufText, TEXT("Error"), MB_OK | MB_ICONERROR);
			break;

		case NM_RCLICK:
			// Open context menu
			break;

		case NM_DBLCLK:
			// Open or run file
			break;

		default:
			break;
		}
	}
} 
  1. Chciałbym się dowiedzieć czy istnieje sposób aby pobrać danego pliku, lub folderu ikonkę tak aby w wierszu ListView było widać ikonkę obok nazwy?
  2. Wysyłanie tekstu do statica. Wiem że jest to banalne ale prawda jest taka że po utworzeniu kontrolki static za żadne skarby nie mogę ustawić/zmienić tekstu. Próbowałem debugować to wyskakuje komunikat, że hStatic równa się unused i nie wiem o co mu chodzi. Co do ustawiania tekstu to próbowałem SetWindowText, Static_SetText, SendMessage itp.
HWND hStatic = CreateWindowEx(
		WS_EX_CLIENTEDGE,
		WC_STATIC,
		TEXT("DUPA"),
		WS_CHILD | WS_VISIBLE | SS_LEFT | SS_WHITEFRAME,
		uPoint.x, uPoint.y,
		uSize.cx, uSize.cy,
		hWnd,
		(HMENU)uId,
		hInstance,
		NULL);

Nie wiem czy dobrze robię ale generalnie wszystkie kontrolki tworzę w WM_CREATE.