Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Iren
Сообщений: n/a
#1

Как работает функция DrawItem? - C++

06.02.2008, 13:48. Просмотров 1229. Ответов 1
Метки нет (Все метки)

1.Объясните пожалуйста как работает функция DrawItem
2.Почему, даже когда я не пишу никакой обработки в этой функции, при запуске приложения вываливается окно с ошибкой, ссылающееся на макрос ASSERT? что это значит и как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2008, 13:48     Как работает функция DrawItem?
Посмотрите здесь:

Как работает функция? - C++
int chsim() { if (ef) return *usim=EOF; usim++; if(*usim!='*' && *(usim+1)!='') { com=0; com++; ...

Как работает функция в с++? - C++
Здравствуйте,я только учусь с++ и тут же у меня вопрос как работает функция? что возвращает return?Куда возвращает?

Как работает рекурсивная функция - C++
Есть функция вывода бинарного дерева struct Node { int x; Node *l,*r; }; void show(Node *Tree) { if (Tree!=NULL)

Как работает функция strtok - C++
Как работает функция strtok. #include "stdafx.h" #include <iostream> #include <cstring> #include <conio.h> using namespace...

Функция seekg() как работает? - C++
Надо считывать из бинарного файла числа, которые стоят на четных позициях. Надо использовать seekg(), но как она работает, можете...

Как работает эта функция? - C++
Вот код программы крестики-нолики. Пожалуйста, объясните на пальцах как работает ф-ция "botMove". Мне нужно написать такую же, но у меня...

Как работает эта функция? - C++
Как работает эта функция?Я знаю, что она ищет простые числа, но каким образом,я не понимаю.Например зачем тут Num/2 и т.д? bool...

Как работает функция sort(); ? - C++
Помогите разобраться с функцией sort(); Вот например: void SORT(int **arr, int M, int N){ for (int i = 0; i < M; i++) { ...

Функция printf () как это работает - C++
Здраствуйте Ув. Форумчане. Прошу помочь разобраться с конкретным примером. #include <iostream> #include <stdio.h> float d = 1; ...

Объясните как работает хеш-функция - C++
int Hash_Function1(DrugStore object) { int result = 0; for (int i = 0; i < SSize+1; i++) result = result +...

Не понимаю как работает эта функция - C++
Что означают аргументы & и * в этой функции ? template <typename T> inline T* const& max(T* const& a, T* const& b) { return *a...

Как работает шаблонная функция countof? - C++
Здравствуйте! Нашел в Интернете следующую шаблонную функцию countof, которая подсчитывает количество элементов в массиве. Проверил,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Snork
Сообщений: n/a
06.02.2008, 17:50     Как работает функция DrawItem? #2
virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );

См. описание этой структуры (LPDRAWITEMSTRUCT) в МСДН или поставь селектор (->) в теле этой ф-ции после экземпляра, чтоб просмотреть все члены (поля). Там хранится описание, какой объект рисуется (константы ODT_), его номер и всякая полезная инфа. Ошибка с Ассертом - скорее всего, какой-то элемент на форме имеет свойство OwnerDraw. Это значит, что он себя не рисует (для убедительности в тело ф-ции отрисовки включили макрос ASSERT), рисовать его должен либо перегруженный метод дериватива, либо родитель. Я предпочитаю последний вариант. Тогда делать надо так:

1)На окно ложить элемент управления, присваивать ему стиль OwnerDraw.
2)Использовать (если надо) СТАНДАРТНЫЙ, MFC-шный класс переменной. (Мы ведь используем вариант с родителем, а не деривативный).
3)В классе окна-родителя отследить сообщения WM_MEASUREITEM, WM_DRAWITEM и (если надо) WM_COMPAREITEM.
4)В методах On...() провести соответственно установку размера, отрисовку и сравнение итемов.

А вся эта фигня нужна, если имеется надобность сделать какой-нибудь хитрый листбокс или там кнопарик (но лучше накопать нужный класс, соответственно и отрисовка и т.п. будет делаться этим деривативом, а в родителе делать ничего не надо).

Хочу порекомендовать вот что. Взять UltimateToolbox и копаться у него в сырцах. Лучший учебник по MFC. Круглински (царство ему небесное) сотоварищи отдыхают. Там много всего сделано через этот метод.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru