Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с диалогавыми окнами.

31K
28 июня 2009 года
losra
13 / / 29.05.2008
Почему в этом коде зависает( необрабатывает сообшения) массаджбокс
Код:
#include "windows.h"
#include "iostream"
#include "resource.h"

HRESULT _stdcall MyDlgProc(HWND hwnd,UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
    case WM_COMMAND:
        MessageBox(NULL,"xaxa","!",MB_OK); //Вот этот msgbox зависает.
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(hwnd,msg,wParam,lParam);
}



int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    HWND hwnd =CreateDialogA(hInstance,(LPCSTR)IDD_MAINWINDOW,NULL,(DLGPROC)MyDlgProc);
    MSG msg;
    ShowWindow(hwnd,SW_SHOW);
    SetTimer(hwnd,1001,1000,0);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 1;
}
397
28 июня 2009 года
SergPas
527 / / 03.02.2007
Изначально всё неправильно... Вам следует почитать литературу по WinAPI...
Вот примерно как должно быть:
Код:
#include <windows.h>
#include "resource.h"

BOOL CALLBACK MyDlgProc(HWND hwnd,UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
    case WM_COMMAND:
        switch(wParam)
        {
        case IDCANCEL:
            EndDialog(hwnd, 0);
            break;
        }
    default:
        return false;
    }
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    DialogBox(hInstance,"IDD_MAINWINDOW",NULL,MyDlgProc);    
    return 0;
}
Соответственно диалог должен описываться в файле ресурсов примерно так:
 
Код:
IDD_MAINWINDOW DIALOG 10, 10, 350, 200
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME
CAPTION "text"
{
//контролы
}
31K
28 июня 2009 года
losra
13 / / 29.05.2008
Спасибо, про винапи я читал, токо чёт про диалоги нечитал )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог