Часто задаваемые вопросы и ответы по программированию на VB
Последнее обновление: 28.03.03
Q: Как сдвинуть меню вправо?
A (ego): Используйте следующий код

Option Explicit

Private Const MF_POPUP = &H10&
Private Const MF_BYPOSITION = &H400&
Private Const MF_HELP = &H4000&

Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal _
nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long

Private Sub Form_Load()
Dim hMenu&, hSubMenu&, hMenuItem&, Position&

Position = 0 ' Позиция меню, сдвигаемого вправо
hMenu = GetMenu(Me.hwnd)
hSubMenu = GetSubMenu(hMenu, Position)
ModifyMenu hMenu, Position, MF_POPUP + MF_BYPOSITION + MF_HELP, hSubMenu, "Меню2"
End Sub

Вместо текста "Меню" следует написать текст того меню, который ты сдвигается вправо.
Если после этого пункта стоят еще пункты, то они тоже сдвинутся вправо.

FAQ составлен по материалам Форума на Исходниках.Ру.
Составитель: Crew
Copyright © 2002 by Sources.ru. All rights reserved.