はじめまして
W32プログラミング講座のテキストエディタの項目で
エディットボックスのサイズをウィンドウに合わせたのと同様に
リストボックスのサイズを
Dim rc As RECT
Dim hList As HWND
hList=GetDlgItem(hSub,ListBox1)
GetClientRect(hSub,rc)
MoveWindow(hList, 0, 0, rc.right, rc.bottom,0)
という方法でウィンドウに合わせようとしました。
しかし、この方法だとウィンドウの下部の余白部分がいちいち変化して、気持ち悪いのです。
これを無くすには、どうすれば良いのでしょう。
ご存知の方、教えてください
ウィンドウのサイズ変更にリストボックスを合わせる
Re: ウィンドウのサイズ変更にリストボックスを合わせる
リストボックスのプロパティで文字列アリにチェックする( LBS_HASSTRINGSを)
オーナードローを可変にする。
このままではリストにモジが表示されないので、
構造体を定義しておきWM_DRAWITEMメッセージを処理する
オーナードローを可変にする。
このままではリストにモジが表示されないので、
コード: 全て選択
Type DRAWITEMSTRUCT
CtlType As DWord
CtlID As DWord
itemID As DWord
itemAction As DWord
itemState As DWord
hwndItem As HWND
hDC As HDC
rcItem As RECT
itemData As DWord
End Type
コード: 全て選択
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
Dim dis As *DRAWITEMSTRUCT
Dim sItem[100] As Byte
If dwMsg = WM_DRAWITEM Then
dis = lParam
SendMessage(dis->hwndItem, LB_GETTEXT, dis->itemID, sItem)
DrawText(dis->hDC, sItem, -1, dis->rcItem, DT_LEFT)
End If
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function