2015-03-06 5 views
0

Может показаться, что я задаю глупый вопрос тем, кто уже знает. Вы когда-нибудь замечали, как трудно найти эти значения констант значения для свойств некоторого управления MFC, которое вы только начинаете изучать. Было бы неплохо, если бы я мог просто перейти к некоторому знанию знаний или потому, что информация слишком велика, чтобы положить в книгу, а затем на веб-сайт, где вы могли бы перейти к управлению и методу или свойству, которые вы хотите найти чтобы найти то, что настройки константы являются приемлемыми ...mfc C++ Получение управляющих свойств по управлению

Например, я работаю с CListCtrl на мой CDialog (может быть даже CDialogEx, если это необходимо), и я хотел бы установить Verticle & Горизонтальные линии (или линии сетки) в этот контроль. Вы могли бы подумать, что я найду пример. Пока что нет. Другим является формат столбцов CListCtrl. Я нашел LVCFMT_LEFT, однако я ищу что-то вроде «LVCFMT_CENTER», и это не так. Поэтому я просто расчесываю интернет, глядя, могу ли я взглянуть на мой вопрос от кого-то вопроса относительно чего-то еще на CListCtrl.

Если кто-нибудь может направить меня на мой квест, я был бы признателен.

Maddog

ответ

0

Вы смотрите здесь https://msdn.microsoft.com/en-us/library/hfshke78.aspx?

Для отображения линий сетки вам необходимо установить расширенный стиль LVS_EX_GRIDLINES. Вы делаете это по телефону SetExtendedStyle.

auto exstyles = m_myListCtrl.GetExtendedStyle(); 
exstyles |= LVS_EX_HEADERDRAGDROP; 
m_myListCtrl.SetExtendedStyle(exstyles); 

Что касается LVCFMT_CENTER, он работает, но не на первом столбце. Смотрите замечания в MSDN:

Если столбец добавляется к элементу управления список ракурса с индексом 0 (крайний левый столбец) , всегда LVCFMT_LEFT. Установка других флагов в столбце 0 не отменяет это выравнивание. Поэтому, если вы продолжаете вставлять столбцы с индексом 0, текст во всех столбцах выравнивается по левому краю. Если вы хотите, чтобы первый столбец был выровнен по правому краю или центрирован, вы можете создать фиктивный столбец , затем вставьте один или несколько столбцов с индексом 1 или выше и укажите требуемое выравнивание. Наконец удалите столбец .

+0

Это самая странная вещь. Поэтому для элемента управления или конструктивного решения не требуется выравнивание первого столбца, это ограничение функции добавления, которое оно перезаписывает свойство произвольно для первого. Weird! – Blindy

+0

Я считаю, что это одна из тех ошибок, которые со временем стали функцией (потому что изменение было бы сломаны). –

+0

Спасибо, что ответили на мой вопрос с такой готовностью и точностью. Ссылка наверху, однако, не давала никакой информации о самих константах, таких как 'LVCF_'anything. Я нашел, что intellisense немного помогает, давая мне другие, если у меня уже есть такая настройка значений, как, например, в 'LVCF_LEFT'. То, что я ищу (не уверен, если доступно), заключается в том, чтобы найти все такие значения для всех таких свойств всех таких элементов управления всех таких классов в MFC. Это было бы круто! Еще раз спасибо. –