#include "resource.h"
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
WNDCLASSEX wcex;
GetClassInfoEx(NULL,"EDIT",&wcex);
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.lpszClassName="SUPER";
wcex.hInstance=(HINSTANCE)hModule;
RegisterClassEx(&wcex);
DialogBoxParam((HINSTANCE)hModule,MAKEINTRESOURCE(IDD_DIALOG),NULL,DlgProc,0);
return TRUE;
}
BOOL CALLBACK DlgProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CLOSE:
{
EndDialog(hWnd,0);
break;
};
};
return FALSE;
}
Не появляется диалог
Работаю с Custom Control. Сразу хочу сказать - что в exe - работает, а в dll - не работает!!! Просто располагаю кастомконтрол. А диалог не появляется! Куда копать? (В кастомконтроле - прописываю имя класса, с табстопа убираю галочку - т.е. все по человечески, проверяю в ехе - работает(!), а в длл - нет)
AFX_EXT_CLASS ???
Копай в сторону AFX_MANAGE_STATE(AfxGetAppModuleState()).
Мало инфы. Длл меджду прочим так просто не создаст свой диалог из ресурса.
Ага, экстрасенсов здесь нет.
HANDLE hInst;
BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call, LPVOID lpReserved)
{
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
{
hInst = hModule;
}
return 0;
}
Спасибо за помощь.но я от такого способа уже отказался - делать через длл (((((( Я хочу попробовать сделать через длл - но когда время будет ;)
код для dll:
Код:
В ресурсах соответственно диалог IDD_DIALOG с CustomControl с классом SUPER.
exe:
Код:
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
LoadLibrary("имя_dll.dll");
return 0;
}
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
LoadLibrary("имя_dll.dll");
return 0;
}
Я записал твой пример - проверю )))