Определение констант стиля окна в 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&
Другие вопросы по тегам