FAQ:WinAPI VCPP
Материал из Весельчак У
Ответы на часто задаваемые вопросы по Windows API и VC++.
Составлено по материалам форума программистов.
- У меня есть наименование класса ActiveX. Мне необходимо узнать в каком файле он находится, и какой версии этот файл.
- Имеется DLL. В ней есть некоторые данные (скажем, массив int). Как сделать, чтобы переменные в DLL были одними и теми же для всех программ, использующих эту DLL? (Например, при загрузке DLL в массиве нет данных. Каждая программа добавит в массив новые данные.)
- Если окно объекта, производного от CScrollView, имеет полосы прокрутки, то как определить координаты курсора мыши?
- Если известны абсолютные координаты точки на экране, как перевести эти координаты в относительные координаты некоторого известного окна?
- Когда я вывожу две строки (одна под другой), то положение символа в строках зависит от ширины символа, а хотелось бы, чтобы символы располагались один под другим.
- Как обратиться к переменной или методу базового класса?
- Как записать данные в файл?
- Имеются две программы, взаимодействующие между собой. Можно ли в MS VC6 запустить под отладчиком одновременно две программы?
- Каким образом можно получить доступ к объекту в классе CFrameWnd из функций-членов класса CMyView?
- Я рисую новую иконку в ресурсах проекта VC6, но после запуска программы показывается старая иконка. Что делать?
- Как программно расположить один CDialogBar под другим при их вертикальном расположении?
- Как добавить возврат каретки к переменной типа CString?
- Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.
- Как создать в VC++ exe-шник меньше 24-х килобайт?
- Как удалить из меню пункт?
- Как добавить пункт в меню?
- Как вывести на печать то, что я нарисовал в контексте устройства (класс CDC)?
- Как нарисовать линию или прямоугольник на контексте устройства (CDC)? Как выбрать цвет и толщину линии?
- Как сменить шрифт при выводе текста на CDC?
- Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.
- Как создать иконку в области уведомлений (системном трее)? Как определить, какие действия производит с иконкой пользователь? Как сделать анимацию иконки в трее? Как удалить иконку?
- У меня в программе имеется процедура, которая производит очень много вычислений. Как сделать так, чтобы пользователь мог прервать процесс вычислений?
- Не могу обратиться к COM из дополнительного потока. Мне пишут - "CoInitialize() не вызвано".
- Как с помощью CFileDialog разрешить выбирать только папки?
- Как в CDialog-based классе получить коды клавиш, которые нажимает пользователь? Пробовал добавлять обработчики OnChar() и OnKeyDown(), но эти обработчики вообще не вызываются.
- Как заполнить блок памяти определённым значением?
- Как сравнить два блока памяти на равенство значений?
- Как скопировать блок памяти?
- Нужно удалить контрол (CComboBox) из диалога. Причём это надо сделать из обработчика сообщения этого контрола.
- Я создал простой проект DLL на VC++ 6.0. Все скомпилировалось нормально. Но в другой программе не могу вызвать функцию из DLL - программа не может найти функцию по имени.
- Есть ли какой-нибудь макрос в VC7, возвращающий строку вида ClassName::FunctionName внутри соответствующей функции?
- Как динамически подгрузить ресурсы к ATL проекту?
- Как динамически подгрузить ресурсы к MFC проекту?
- Как узнать значение цвета пиксела в определенной точке экрана (не окна формы)?
- Возможно ли использование файлов чистого С и С++ в одном проекте? Если да, то каковы должны быть настройки компилятора? А то ругается на Unexpected end of file while looking for precompiled header directive.
- Каким образом можно установить значение переменной для вызывающего процесса или потока из своей собственной DLL?
- Как закрасить фон окна CWnd?
- Как определить, что курсор мыши вышел за границу окна?
- Когда размещаю компонент RichEdit на форму, программа запускается и тут же закрывается. Что здесь не так?
(Идет работа в разделе.)