Это может быть довольно простой вопрос, но я искал и не могу найти объяснения. Я играю с функциями API для диалоговых окон в VBA, и я хочу, чтобы объявить константы для стилей окна, как определено здесь, так что я могу попробовать использовать функцию CreateDialog API: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspxОпределение констант стиля окна в VBA (0x00000000 vs & H000)
Обычно я вижу окно константы в VBA определенные как длинные типы со значением примерно &H000
или что-то в этом роде. Но я не могу найти значение формата &H000
для этих констант, я могу найти только значения формата 0x00000000
.
Например, посмотрите документацию OpenFileName here и прокрутите вниз до флагов. Константные выражения перечислены со значениями в формате 0x00000000
. Однако, если мы посмотрим на константы CommonDialog here, мы можем увидеть те же константы, что и их значения в формате &H000
.
Итак, у меня есть как минимум три вопроса:
Что представляют значения 0x0000000?
Что представляют значения & H000?
Это их способ конвертировать между ними?
Потому что я попытался объявить Public Const WS_BORDER as Long=0x00800000L
, и получим область синтаксиса после «х», говорящего о ожидаемом конце инструкции.
Это звучит достаточно просто. Тем не менее, «L» в конце выражения все еще дает синтаксическую ошибку. Например. Я изменил 'Long = 0x00800000L' на' Long = & H00800000L', и он дает мне синтаксическую ошибку на «L», говорящую ожидаемый конец оператора – CBRF23
Суффикс 'L' также является идиомой C, просто отбросьте его в VBA:' Public Const WS_BORDER as Long = H & 00800000' –
Интересно. Мне нужно будет кое-что прочитать. Я нашел [это] (http://support2.microsoft.com/kb/161304?ln=end) перед отправкой и попытался преобразовать суффикс L в &, однако он делает то же самое, что просто отбрасывает L. и Мне интересно, что VB автоматически преобразует 'H & 00800000' или' H & 00800000 & 'в' & H800000' – CBRF23