Я пытаюсь получить Microsoft Access для «выхода» из основного окна Access, чтобы я мог скрыть окно Access и просто показать форму на рабочем столе, чтобы его можно легко разместить рядом с другими приложениями.Использование SetParent для выхода из Access Access из Access
Сначала я нашел образцы кода, которые используют собственное свойство Form.PopUp Access, но это невозможно установить во время выполнения, только в режиме просмотра. Хотя это, кажется, добиться того, что я пытаюсь сделать, есть два недостатка:
Переключение между режимами просмотра дизайна и нормального зрения требуется «закрытие» окно между ними - я предпочел бы держать его открытым, чтобы сохранить текущее состояние, особенно когда оно используется для создания новых записей, которые обязательно являются несохраненными.
Я хочу открыть другие формы из основного, что также не очень хорошо работает с этим подходом, если они тоже не установлены как «всплывающие окна». Но это хлопот, так как они также должны быть помещены в дизайн-представление и т. Д., И я не уверен, что было бы легко переключаться между двумя всплывающими окнами.
Я тогда нашел функцию API под названием SetParent, которая, казалось, делала то, что мне нужно. Я использовал следующие команды (VBA синтаксис):
SetParent ShowForm.hWnd
ShowWindow hWndAccessApp, SW_HIDE
ShowWindow ShowForm.hWnd, SW_SHOWNORMAL
Но я столкнулся с двумя проблемами (возможно, связанные:
окно, казалось бы, а отвечать на запросы (я не мог ввести в него, ., например, и нажимая на кнопки, кажется, не работает, либо)
Когда я сделал ALT + TAB, я получил BSOD:
BugCheck 1000008E, {c0000005, 9e3573f5, 88d9da10, 0} Probably caused by : win32k.sys (win32k!xxxNextWindow+3a6) at win32k!EngLineTo+1a641
Есть ли другой способ сделать это, чтобы я мог иметь форму без окна доступа, которое может вызывать и отображать другие формы доступа за пределами основного окна доступа?
Я заметил в SetParent API Documentation, что есть еще несколько вещей, которые нужно сделать - изменение состояния пользовательского интерфейса и изменение стиля окна, но я не могу найти правильные методы для их выполнения. Будет ли это исправлять проблему BSOD и не реагирования?
Спасибо за любые идеи!
@JanW: Я не уверен, что ваша проблема имеет много общего с этим вопросом (что касается одной формы и возможности использования проектного представления). Примечание: см. Http://stackoverflow.com/a/24638829/3820271 о том, как удалить большинство элементов интерфейса Access. – Andre
@JanW: Мой ответ решает исходный вопрос. Я не знаю, поможет ли это вам в достижении вашей цели. Если нет, я предлагаю вам задать новый вопрос, конкретно касающийся ваших требований, поскольку они несколько отличаются от того, что было задано здесь. – PhilS