Определение констант стиля окна в VBA (0x00000000 против &H000)
Это может быть довольно простой вопрос, но я искал и не могу найти объяснения. Я играю с функциями API для диалоговых окон в VBA и хочу объявить константы для стилей окон, как здесь определено, поэтому я могу попробовать использовать функцию API CreateDialog: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx
Обычно я вижу оконные константы в VBA, определенные как длинные типы со значением что-то вроде &H000
или что-то типа того. Но я не могу найти &H000
значение формата для этих констант, я могу только найти 0x00000000
значения формата.
Например, см. Документацию OpenFileName здесь и прокрутите вниз до флагов. Постоянные выражения перечислены со значениями в формате 0x00000000
, Однако, если мы посмотрим на константы CommonDialog здесь, мы можем увидеть те же константы, перечисленные с их значениями в формате &H000
,
Итак, я думаю, у меня есть как минимум три вопроса:
Что представляют собой значения 0x0000000?
Что представляют собой значения &H000?
Это способ конвертировать между ними?
Потому что я пытался объявить Public Const WS_BORDER as Long=0x00800000L
и я получаю синтаксическую область после "x", говорящего об ожидаемом конце оператора.
1 ответ
0x...L
формат объясняется здесь для C++ (я полагаю, что это то же самое в некоторых других языках). 0x
означает, что число является шестнадцатеричным, и L
означает, что он должен быть интерпретирован компилятором как Long
,
Эквивалентный синтаксис VBA будет &H...&
куда &H
означает шестнадцатеричный и &
Значит Long
,
Так, например, ваше утверждение:
Public Const WS_BORDER as Long = 0x00800000L
Должно быть:
Public Const WS_BORDER as Long = &H00800000&