Добрый день!
Я уже этот вопрос поднимал (см. )
CreateWindowExАвтор: Sergeant
Дата: 28.01.02
. Отложил тогда это дело, т.к. ничего не прояснилось. Но теперь опять подперло.
Смысл в чем. Есть приложение. Главное окно создается через CreateDialog:
hWnd = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_MAINDLG),
0, WndProc);
ShowWindow (hWnd, iCmdShow) ;
UpdateWindow (hWnd) ;
while (GetMessage (&msg, NULL, 0, 0))
//и т.д.
Теперь мне нужно без лишней крови сделать так, чтоб окно создавалось через CreateWindow или через CreateWindowEx. Начал я с того, что:
int t;
WNDCLASS wndclass;
MSG msg;
wndclass.style = 0;// CS_HREDRAW ;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;//DLGWINDOWEXTRA;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)COLOR_WINDOW;
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "MailerClass";
t = RegisterClass(&wndclass) ;
hWnd = CreateWindowEx(0, "MailerClass", "Mailer",
WS_OVERLAPPEDWINDOW,
0, 0, 160, 32, 0, 0, hInstance, 0);
t = GetLastError();
ShowWindow (hWnd, iCmdShow) ;
UpdateWindow (hWnd) ;
while (GetMessage (&msg, NULL, 0, 0))
//и т.д.
И вот тут начался рокенролл. Окно не создается (hWnd = 0), а GetLastError возвращает 183 — мол, файл уже создан (Cannot create a file when that file already exists).
Может у кого за это время новые идеи появились? Может здесь дело именно в том, что я пытаюсь от CreateDialog избавиться? Если это не правильно, то как же от него тогда избавляться?...