人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VisualBasic6.0 の ListView (mscomctl.ocx) で、列ヘッダがクリックされたときに、列ヘッダが凹まないようにしたいのですが、 API をご存知の方がいらっしゃいましたら、教えてください。初心者なので、できればコードつきで。よろしくお願いします。


●質問者: lph
●カテゴリ:コンピュータ
✍キーワード:API クリック コード 初心者
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● mj99
●100ポイント ベストアンサー

コモンコントロールのウィンドウスタイル

SetWindowLongでスタイルをいじります。

Option Explicit

Private Const GWL_STYLE As Long = -16
Private Const LVS_NOSORTHEADER = &H8000&
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub Form_Load()
 
 ' 列見出しを押せなくする
 Dim dwStyle As Long
 dwStyle = GetWindowLong(ListView1.hwnd, GWL_STYLE) ' リストビューの現在のスタイルを取得
 dwStyle = dwStyle + LVS_NOSORTHEADER ' ソートボタン無しスタイルを追加
 Call SetWindowLong(ListView1.hwnd, GWL_STYLE, dwStyle) ' リストビューにスタイルを設定
 
 ' 適当なテストデータ
 Dim obItem As ListItem
 
 ListView1.View = lvwReport
 
 ListView1.ColumnHeaders.Add , , "1列", 500
 ListView1.ColumnHeaders.Add , , "2列", 500
 ListView1.ColumnHeaders.Add , , "3列", 500
 
 Set obItem = ListView1.ListItems.Add()
 obItem.Text = "1-1"
 obItem.SubItems(1) = "1-2"
 obItem.SubItems(2) = "1-3"
 Set obItem = ListView1.ListItems.Add()
 obItem.Text = "2-1"
 obItem.SubItems(1) = "2-2"
 obItem.SubItems(2) = "2-3"
 Set obItem = ListView1.ListItems.Add()
 obItem.Text = "3-1"
 obItem.SubItems(1) = "3-2"
 obItem.SubItems(2) = "3-3"
 
End Sub
◎質問者からの返答

おおお、完璧です。

mj99 様、大変ありがとうございました!!!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ