ab.com コミュニティ
https://www.activebasic.com/forum/

ウィンドウのサイズ変更にリストボックスを合わせる
https://www.activebasic.com/forum/viewtopic.php?t=1624
ページ 11

作成者:  doloop [ 2006年10月14日(土) 21:02 ]
記事の件名:  ウィンドウのサイズ変更にリストボックスを合わせる

はじめまして
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)
という方法でウィンドウに合わせようとしました。

しかし、この方法だとウィンドウの下部の余白部分がいちいち変化して、気持ち悪いのです。
これを無くすには、どうすれば良いのでしょう。

ご存知の方、教えてください

作成者:  HSABP [ 2017年10月29日(日) 22:05 ]
記事の件名:  Re: ウィンドウのサイズ変更にリストボックスを合わせる

リストボックスのプロパティで文字列アリにチェックする( LBS_HASSTRINGSを)
オーナードローを可変にする。

このままではリストにモジが表示されないので、
コード:
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
構造体を定義しておきWM_DRAWITEMメッセージを処理する
コード:
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

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/