CreateWindowEx
От: Sergeant Украина www.photomirror.com.ua
Дата: 26.03.02 09:30
Оценка:
Добрый день!
Я уже этот вопрос поднимал (см. )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 избавиться? Если это не правильно, то как же от него тогда избавляться?...
Курить я буду, но пить не брошу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.