以下示例:
实现把桌面前10图标排成一个圆 具体可以参考ListView_RedrawItems这类函数的用法
- void C***::OnSetDeskIcon()
- {
- HWND hwndParent = ::FindWindow( "Progman", "Program Manager" );
- HWND hwndSHELLDLL_DefView = ::FindWindowEx( hwndParent, NULL, "SHELLDLL_DefView", NULL );
- HWND hwndSysListView32 = ::FindWindowEx( hwndSHELLDLL_DefView, NULL, "SysListView32", "FolderView" );
- int Nm = ListView_GetItemCount( hwndSysListView32 );
- int sNm = 0;
- if( Nm >= 10 )
- {
- sNm = 10;
- }else{
- sNm = Nm;
- }
- for( int i = 0; i < sNm; i++ )
- {
- int x = 400 + 150*cos( i*36*3.1415926/180 );
- int y = 400 + 150*sin( i*36*3.1415926/180 );
- ::SendMessage( hwndSysListView32, LVM_SETITEMPOSITION, i, MAKELPARAM( x,y));
- }
- ListView_RedrawItems(hwndSysListView32, 0, ListView_GetItemCount(hwndSysListView32) - 1);
- ::UpdateWindow(hwndSysListView32);
- }