2010-02-10 24 views
1

我想在Windows Mobile 6.1上創建所有者繪製的列表框我在創建列表框控件時指定了LBS_OWNERDRAWFIXED樣式。我正在處理WM_MEASUREITEMWM_DRAWITEM如何在Windows Mobile中動態更改所有者繪製的列表框的高度?

我想更改列表框項目的高度,只要它的字體發生變化(我在創建控件後使用WM_SETFONT更改它)。問題是WM_MEASUREITEM消息只發送一次。我需要一種方法來再次生成WM_MEASUREITEM消息,以便我可以將項目高度設置爲字體高度。我看過文章http://www.codeguru.com/Cpp/controls/listview/advanced/article.php/c1013/,但它使用MFC,而我正在使用WINAPI直接開發這個控件。有些文章提到重新調整控件大小會再次生成WM_MEASUREITEM消息。但是,我的情況並沒有得到生成。

請讓我知道有沒有什麼辦法可以在Windows Mobile中實現這一點。

回答

0

該代碼中沒有特別的MFC。 OnSetFont就是處理WM_SETFONT。 MeasureItem正在處理MyListCtrl中發送給其父項的WM_MEASUREITEM。

至於在調整窗口大小時生成新的WM_MEASUREITEM不能在處理WM_SIZE/WM_SIZING時執行SendMessage嗎?

+0

感謝您的迴應Goz。 我試着直接使用SendMessage,它確實生成了WM_MEASUREITEM&WM_DRAWTEM消息。在WM_MEASUREITEM處理程序中,我更改了項目的高度。但是,這種改變的高度並未反映在隨後的WM_DRAWITEM消息中。 關於調整窗口大小,我不需要調整窗口大小。我只是試圖用它來生成WM_MEASUREITEM。你可以請建議任何其他方式來改變項目的高度? – Nilesh 2010-02-11 04:39:28

相關問題