ну если нужно указать только путь, то можно и так:
#include <shlwapi.h>
...
CString BrowseForFolder(HWND hWndParent, LPCWSTR lpszTitle, UINT nFlags)
{
CString strResult = _T("\0");
LPMALLOC lpMalloc;
if (::SHGetMalloc(&lpMalloc) != NOERROR) return strResult;
ACHAR szBuffer[1024];
ACHAR szDisplayName[MAX_PATH];
BROWSEINFO browseInfo;
browseInfo.hwndOwner = hWndParent;
browseInfo.pidlRoot = NULL;
browseInfo.pszDisplayName = szDisplayName;
browseInfo.lpszTitle = (LPCWSTR)lpszTitle;
browseInfo.ulFlags = nFlags;
browseInfo.lpfn = NULL;
browseInfo.lParam = 0;
LPITEMIDLIST lpItemIDList;
if ((lpItemIDList = ::SHBrowseForFolder(&browseInfo)) != NULL)
{
if (::SHGetPathFromIDList(lpItemIDList, szBuffer))
{
if (szBuffer[0] == _T('\0')) return strResult;
strResult = szBuffer;
return strResult;
}
else return strResult;
lpMalloc->Free(lpItemIDList);
lpMalloc->Release();
}
return strResult;
}
а вызывать так:
CString retStr = BrowseForFolder(adsw_acadMainWnd(), _T("Папка пользователя:"), BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS); // если вызывается из диалога, то пихать рцтв диалога а не акада
теперь разбор полетов :)
поводу ACED_ARXCOMMAND_ENTRY_AUTO не понял, обьясните, пожалуйста, поподробней
начнем с простого в проекте есть файл acrxEntryPoint.cpp? если есть, то в самом низу идет "описание" для автокадовской команды. например, так:
ACED_ARXCOMMAND_ENTRY_AUTO(CMyApp, acadMyClass, acad_command1, acad_command1, ACRX_CMD_TRANSPARENT, NULL)
вот интересует всё что находится после последнего acad_command1. просто проблема может быть еще и тут закопана :)
Нет, просто вызываю Windows API.
да понятно что winapi? откуда вызывается winapi? из команды для автокада в файле acrxEntryPoint.cpp или из своего диалога?
WM_ACADKEEPFOCUS нужен классах диалогов, которые есть в проекте, чтоб автокад нормально получал фокус после закрытия окна и отдавал его перед открытием. как-то так. подробней и сам не ковырялся. знаю только что без него работает плохенько, осообенно если еще и выпадающие сообщения с окна вылазят, типа не то ввел, отойди от компьютера и т.п. :)
PS: самый простой вариант. код в массы. а то гадание по фотографии :) не получается как-то у нас