예제 #1
0
 public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, ref LVITEM lParam);
예제 #2
0
        /// <summary>
        /// アイコンのオーバーレイを表示します。
        /// </summary>
        /// <param name="self">アイコンオーバーレイを表示させたい<see cref="System.Windows.Forms.ListViewItem"/></param>
        /// <param name="overlayIndex">オーバーレイインデックス(開始値 1)</param>
        public static void Overlay(this ListViewItem self, int overlayIndex)
        {
            // ListView_SetItemState(listItem.ListView.Handle, listItem.Index,
            //     overlayIndex << 8, LVIS_OVERLAYMASK); 相当の処理

            LVITEM lvi = new LVITEM();
            lvi.stateMask = NativeMethods.LVIS_OVERLAYMASK;
            lvi.state = ((uint)overlayIndex << 8);

            NativeMethods.SendMessage(self.ListView.Handle,
                NativeMethods.LVM_SETITEMSTATE, self.Index, ref lvi);
        }