初來乍到,請多多指教!先請教乙個控制項問題 vcl元件開發及應用
sendmessage(panel2.handle,lb_sethorizontalextent, panel2.width+30, 0);
這個方式可以給listbox新增橫向滾動條,但是換成panel就不行了,為什麼,論壇中說是可以的,但是我就是實現不了,請教是什麼原因,我用的是delphi7,謝謝。
順便再問一下,想學習vcl控制項開發,有沒有比較合適的書籍?
tpanel應該沒有處理lb_sethorizontalextent這條訊息的handler吧。這條訊息是專門針對listbox的。 看字首lb_就是這個意思了。但是sendmessage(panel2.handle,lb_sethorizontalextent, panel2.width+30, 0);
還是可以實現panel2.width+30的。
tformdemo = class(tform)
panel: tpanel;
buttondemo: tbutton;
procedure formcreate(sender: tobject);
procedure buttondemoclick(sender: tobject);
private
oldpanelwndproc: twndmethod;
procedure newpanelwindowproc(var message: tmessage);
public
end;
var
formdemo: tformdemo;
implementation
procedure tformdemo.formcreate(sender: tobject);
begin
oldpanelwndproc := panel.windowproc;
panel.windowproc := newpanelwindowproc;
end;
procedure tformdemo.newpanelwindowproc(var message: tmessage);
begin
if message.msg = lb_sethorizontalextent then
panel.width := message.wparam;
oldpanelwndproc(message);
end;
procedure tformdemo.buttondemoclick(sender: tobject);
begin
sendmessage(panel.handle,lb_sethorizontalextent, panel.width+30, 0);
end;
但是實現歸實現, 與lb_sethorizontalextent這條訊息沒有什麼直接的關係啊, 傳送這條訊息和傳送其他的訊息沒有什麼區別的。
謝謝 sanmaotuo(老馮) 的回答,對我幫助很大
問題的點數是不是要像在大富翁裡一樣分發啊,不知道怎麼發:(
初來乍到,請多多指教
學習,是乙個漫長的經歷。期間的快樂和苦痛只有自己感受最深。學習的路程 道阻且長,但在這路上最大的動力就是內心的信念和興趣了。學習也有一段時間了,其實內心一直反感諸如此類的部落格,認為有這時間不如多看看幾頁書 多想想專案方案。但前天施老師的一句話讓我重新思考了這個問題。沒錯,人也是一種遵循自然法則的生...
初來乍到。多多指教
本人初來乍到,請各位朋友多多指教。大學快要讀完了,還有半年就結束了。回想起來,感覺時間過的好快。剛開學的時候什麼都要上,感覺學的東西好多。現在回過頭來感覺什麼都沒學到,什麼都不會。悲劇啊!不過唯一慶幸的是工作一開學就簽好了,是個國企。以後稍微可以慢慢混了。不過心情一直不舒服,大學就這樣荒廢了?乙個月...
初來乍到,請各位大佬多多指教
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...