FAQ:WinAPI VCPP — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) |
RXL (обсуждение | вклад) |
||
Строка 76: | Строка 76: | ||
#[[FAQ:WinAPI VCPP:ошибки в макросах|Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.]] | #[[FAQ:WinAPI VCPP:ошибки в макросах|Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.]] | ||
#[[FAQ:WinAPI VCPP:получение списка процессов|Как получить список всех процессов, включая idle?]] | #[[FAQ:WinAPI VCPP:получение списка процессов|Как получить список всех процессов, включая idle?]] | ||
+ | #[[FAQ:WinAPI VCPP:установка переменных окружения|=Как программно установить переменные окружения?]] | ||
+ | #[[FAQ:WinAPI VCPP:фон окна|Как сделать, чтобы у окна был черный фон?]] | ||
+ | #[[FAQ:WinAPI VCPP:программа не исполняется на другом компьютере|Почему на моем компьютере экзешник, созданный в MFC запускается, а на других компьютерах - нет? Требует какую-то dll.]] | ||
+ | #[[FAQ:WinAPI VCPP:добавление меню в диалог|Как в диалог добавить меню?]] | ||
+ | #[[FAQ:WinAPI VCPP:OnUpdate для пунктов меню|Почему не вызывается OnUpdate для пунктов меню (не получается ни затенить, ни отметку поставить)?]] | ||
+ | #[[FAQ:WinAPI VCPP:отключить системное меню|Как в главном окне отключить системное меню (в левом верхнем углу) и кнопки (в правом верхнем углу)?]] | ||
+ | #[[FAQ:WinAPI VCPP:запретить кнопку|Как запретить пользователю нажать на кнопку?]] | ||
<br> (Идет работа в разделе.) | <br> (Идет работа в разделе.) |
Версия 15:33, 3 октября 2009
Ответы на часто задаваемые вопросы по 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 на форму, программа запускается и тут же закрывается. Что здесь не так?
- Как сделать обработчик сообщения для нескольких элементов управления сразу?
- Когда я запускаю программу, все надписи на русском языке теряются - показываются вопросики. Что делать?
- Как в проекте VC6 MFC программно получить путь, откуда был запущен экзешник (исполняемый модуль) самой программы?
- Как получить доступ к элементам управления панели CReBar, принадлежащей классу MainFrame?
- Как загрузить и показать один из стандартных курсоров?
- Как запретить пользователю закрыть программу нажатием на кнопку с крестиком?
- Как создать на диалоге группу элементов "RadioButton" и как задать порядок их обхода клавишей Tab?
- Где лучше устанавливать начальные значения элемента CComboBox?
- Как перевести RichEdit в режим замены символов?
- Как вызвать метод главного окна (если используется класс CMainFrame) из любого места программы?
- Как запретить появление полос прокруток на форме класса CFormView, когда пользователь делает размер главного окна меньше размера формы?
- Как нарисовать прямоугольник с вертикальным цветовым градиентом?
- Как под Windows отслеживать изменение файла?
- Как конвертировать массив char[] в CString?
- Как зарезервировать в CString буфер нужной длины?
- Как передать больше одного параметр в процедуру потока?
- Как убрать главное меню из окна CMainFrame?
- Как работающая программа может определить, что пользователь завершает работу Windows?
- Как сделать всплывающую подсказку для класса CWnd и классов, от него производных?
- Как в отладчике Visual С++ просмотреть содержимое std::vector<string>?
- Как при выводе текста на контекст устройства определить ширину и высоту выведенных символов текста в пикселах?
- Как узнать, что пользователь меняет текст в приложении на основе CRichEditView?
- Чем отличается метод CArray::GetSize от метода CArray::GetCount?
- Как загрузить текстовую строку из ресурса?
- Как поменять иконку у элемента item в CListCtrl?
- Имеется класс Class1, содержащий член типа "Class2*". А в Class2 имеется член типа "Class1*". Компилятор выдаёт ошибку. Что надо делать?
- Как переключить раскладку клавиатуры в другом (активном) процессе?
- Как получить хендл элемента управления, зная его идентификатор?
- Как из дочернего окна закрыть приложение?
- Как корректно перевести тип BSTR в CString и наоборот?
- Как получить доступ к графическим ресурсам элементов текущей темы оформления Windows?
- Имеется класс, производный от CDialog. Когда диалог в фокусе, нажатие на Enter или Esc приводит к закрытию диалога. Как это запретить?
- Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.
- Как получить список всех процессов, включая idle?
- =Как программно установить переменные окружения?
- Как сделать, чтобы у окна был черный фон?
- Почему на моем компьютере экзешник, созданный в MFC запускается, а на других компьютерах - нет? Требует какую-то dll.
- Как в диалог добавить меню?
- Почему не вызывается OnUpdate для пунктов меню (не получается ни затенить, ни отметку поставить)?
- Как в главном окне отключить системное меню (в левом верхнем углу) и кнопки (в правом верхнем углу)?
- Как запретить пользователю нажать на кнопку?
(Идет работа в разделе.)