FAQ:WinAPI VCPP

Материал из Весельчак У
Перейти к: навигация, поиск

Ответы на часто задаваемые вопросы по Windows API и VC++.

Составлено по материалам форума программистов.

  1. У меня есть наименование класса ActiveX. Мне необходимо узнать в каком файле он находится, и какой версии этот файл.
  2. Имеется DLL. В ней есть некоторые данные (скажем, массив int). Как сделать, чтобы переменные в DLL были одними и теми же для всех программ, использующих эту DLL? (Например, при загрузке DLL в массиве нет данных. Каждая программа добавит в массив новые данные.)
  3. Если окно объекта, производного от CScrollView, имеет полосы прокрутки, то как определить координаты курсора мыши?
  4. Если известны абсолютные координаты точки на экране, как перевести эти координаты в относительные координаты некоторого известного окна?
  5. Когда я вывожу две строки (одна под другой), то положение символа в строках зависит от ширины символа, а хотелось бы, чтобы символы располагались один под другим.
  6. Как обратиться к переменной или методу базового класса?
  7. Как записать данные в файл?
  8. Имеются две программы, взаимодействующие между собой. Можно ли в MS VC6 запустить под отладчиком одновременно две программы?
  9. Каким образом можно получить доступ к объекту в классе CFrameWnd из функций-членов класса CMyView?
  10. Я рисую новую иконку в ресурсах проекта VC6, но после запуска программы показывается старая иконка. Что делать?
  11. Как программно расположить один CDialogBar под другим при их вертикальном расположении?
  12. Как добавить возврат каретки к переменной типа CString?
  13. Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.
  14. Как создать в VC++ exe-шник меньше 24-х килобайт?
  15. Как удалить из меню пункт?
  16. Как добавить пункт в меню?
  17. Как вывести на печать то, что я нарисовал в контексте устройства (класс CDC)?
  18. Как нарисовать линию или прямоугольник на контексте устройства (CDC)? Как выбрать цвет и толщину линии?
  19. Как сменить шрифт при выводе текста на CDC?
  20. Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.
  21. Как создать иконку в области уведомлений (системном трее)? Как определить, какие действия производит с иконкой пользователь? Как сделать анимацию иконки в трее? Как удалить иконку?
  22. У меня в программе имеется процедура, которая производит очень много вычислений. Как сделать так, чтобы пользователь мог прервать процесс вычислений?
  23. Не могу обратиться к COM из дополнительного потока. Мне пишут - "CoInitialize() не вызвано".
  24. Как с помощью CFileDialog разрешить выбирать только папки?
  25. Как в CDialog-based классе получить коды клавиш, которые нажимает пользователь? Пробовал добавлять обработчики OnChar() и OnKeyDown(), но эти обработчики вообще не вызываются.
  26. Как заполнить блок памяти определённым значением?
  27. Как сравнить два блока памяти на равенство значений?
  28. Как скопировать блок памяти?
  29. Нужно удалить контрол (CComboBox) из диалога. Причём это надо сделать из обработчика сообщения этого контрола.
  30. Я создал простой проект DLL на VC++ 6.0. Все скомпилировалось нормально. Но в другой программе не могу вызвать функцию из DLL - программа не может найти функцию по имени.
  31. Есть ли какой-нибудь макрос в VC7, возвращающий строку вида ClassName::FunctionName внутри соответствующей функции?
  32. Как динамически подгрузить ресурсы к ATL проекту?
  33. Как динамически подгрузить ресурсы к MFC проекту?
  34. Как узнать значение цвета пиксела в определенной точке экрана (не окна формы)?
  35. Возможно ли использование файлов чистого С и С++ в одном проекте? Если да, то каковы должны быть настройки компилятора? А то ругается на Unexpected end of file while looking for precompiled header directive.
  36. Каким образом можно установить значение переменной для вызывающего процесса или потока из своей собственной DLL?
  37. Как закрасить фон окна CWnd?
  38. Как определить, что курсор мыши вышел за границу окна?
  39. Когда размещаю компонент RichEdit на форму, программа запускается и тут же закрывается. Что здесь не так?


(Идет работа в разделе.)