|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2016/7/4 17:55:50 |
标题: |
|
加入我的收藏 |
楼主: |
在不自绘的情况下,有什么好的方法来增加菜单项的高度,以适应触屏操作?
微软的win8.x,10系统会自动判断是否触屏来增加菜单项高度,它是怎样做到的?但是delphi开发的程序貌似没效果..
----------------------------------------------
http://mcool.appinn.me/ |
作者: |
|
2016/7/4 18:58:23 |
1楼: |
微软可能是自己画的
----------------------------------------------
|
作者: |
denddy (denddy) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/7/4 19:08:11 |
2楼: |
加入一个空白的imagelist 调整imagelist的图片大小
----------------------------------------------
-
|
作者: |
|
2016/7/5 7:30:11 |
3楼: |
procedure TForm1.N1MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); begin Height:=40; //设置为你需要的高度 end;
----------------------------------------------
delphier
|
作者: |
|
2016/7/6 9:48:34 |
4楼: |
@denddy 你试过没有?我试了没效果
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
|
2016/7/6 9:50:50 |
5楼: |
@herui 这个需要自绘,画虎不成反类犬,自绘有一点丑
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
|
2016/7/6 13:11:41 |
6楼: |
X.OwnerDraw := true;
自己绘制,没有什么丑不丑的,菜单又没有什么复杂的地方,主要就是在合适的位置输出文字即可
----------------------------------------------
-
|
作者: |
denddy (denddy) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/7/6 17:59:04 |
7楼: |
@diystar 我从来就是这么做的 当然 前提是你的菜单关联到 imagelist
----------------------------------------------
-
|
作者: |
|
2016/7/6 19:05:20 |
8楼: |
@denddy 需不需要自绘?我是这样写的:
ImageList1:=TImageList.Create(Self); ImageList1.Height:=50; ImageList1.Width:=0; PopupMenu1.Images:=ImageList1;
但没效果。然而listview却有效果:
ListView1.SmallImages:=ImageList1;
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
denddy (denddy) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2016/7/7 19:05:54 |
9楼: |
@diystar 我都是直接从控件里面拖一个imagelist出来,设置 高度和宽度一样如24 ,然后跟需要显示菜单 关联一起就行了
附件是设为24的效果
此帖子包含附件:
大小:18.8K |
----------------------------------------------
-
|
作者: |
|
2016/7/8 16:46:53 |
10楼: |
@denddy 确实可以,谢谢。可能涉及了自绘(delphi帮你自绘了),跟系统的菜单有些不一样(比如对号)
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
|
2016/7/8 18:05:16 |
11楼: |
我使用的是 @herui 的方法 在窗口创建时重绘菜单。 简单代码如下: pm1.OwnerDraw:=True; //pm1是弹出菜单 Screen.MenuFont.Size:=15; for i := 0 to pm1.Items.Count - 1 do pm1.Items[i].OnMeasureItem := PopupMeasureItem;
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
|
|