wua0550 发表于 2012-2-27 01:21:08

GUICtrlCreateMenuItem创建上下文菜单中的文字能左对齐吗?[已解决]

本帖最后由 wua0550 于 2012-2-27 02:16 编辑

#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include-once

Local $MenuItem
Local $MenuItemName = ['打开', '新建 &N', '打开 &O', '保存 &S', '', '退出 &X']
$hGUI = GUICreate("菜单函数演示", 400, 300)

; 创建文件菜单
$hMenu = GUICtrlCreateMenu("菜单")
For $i = 0 To UBound($MenuItem) - 1
      $MenuItem[$i] = GUICtrlCreateMenuItem($MenuItemName[$i], $hMenu)
Next
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE如图
GUICtrlCreateMenuItem 创建的上下文菜单中的文字都是居中对齐的能不能改为靠左对齐啊?



已解决方法在3楼

pusofalse 发表于 2012-2-27 01:26:54

加上空格不就好了。

wua0550 发表于 2012-2-27 01:46:08

回复 2# pusofalse

不行的加上空格后菜单的宽度也会相应增加,如果算上空格符~一样的居中对齐的

_GDIPlus_StringFormatSetAlign好像可以做,研究中

benkel 发表于 2012-2-27 01:52:52

本帖最后由 benkel 于 2012-2-27 01:54 编辑

那个不是对齐!菜单左边的空间是给图标、复选标记预留出的空间,_GUICtrlMenu_SetMenuStyle来让菜单不预留,例子:#include <GuiMenu.au3>

Local $MenuItem
Local $MenuItemName = ['打开', '新建 &N', '打开 &O', '保存 &S', '', '退出 &X']
$hGUI = GUICreate("菜单函数演示", 400, 300)

; 创建文件菜单
$hMenu = GUICtrlCreateMenu("菜单")
For $i = 0 To UBound($MenuItem) - 1
      $MenuItem[$i] = GUICtrlCreateMenuItem($MenuItemName[$i], $hMenu)
        Next
$hMain = _GUICtrlMenu_GetMenu($hGUI)
$hFile = _GUICtrlMenu_GetItemSubMenu($hMain, 0)
ConsoleWrite(_GUICtrlMenu_SetMenuStyle($hFile,$MNS_NOCHECK) & @CRLF)
GUISetState()

Do
Until GUIGetMsg() = -3补充:
$hMain = _GUICtrlMenu_GetMenu($hGUI)
$hFile = _GUICtrlMenu_GetItemSubMenu($hMain, 0)
可以用$hFile = GUICtrlGetHandle($hMenu)来代替

wua0550 发表于 2012-2-27 02:13:49

回复 4# benkel


    谢谢指点学习了

xyhqqaa 发表于 2012-2-27 08:36:19

留个脚印。。谢谢分享

haijie1223 发表于 2012-2-27 09:20:40

向四楼学习了 。。。。。

zpmc123 发表于 2017-3-29 13:59:31

如何自定义坐标位置,比如把菜放在中间,或者是下面
页: [1]
查看完整版本: GUICtrlCreateMenuItem创建上下文菜单中的文字能左对齐吗?[已解决]