Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AnnG
Сообщений: n/a
#1

Диалоговые окна. - C++

15.06.2011, 19:47. Просмотров 760. Ответов 0
Метки нет (Все метки)

Подскажите ,почему открывается только одно немодальное диалоговое окно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <windows.h>
#include "resource.h"
 
const char szClassName[]="WinLabClass\0";
 
HINSTANCE hInstance=0;
HWND hDlg=(HWND)-1;
 
INT_PTR CALLBACK ModalProc(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK ModeLessProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
    HWND hWnd=0;
    WNDCLASSA WndClass;
    MSG Msg;
 
    WndClass.lpszClassName=szClassName; 
    WndClass.hInstance=hInstance;
    WndClass.lpfnWndProc=WndProc; 
    WndClass.hCursor=LoadCursor(NULL, IDC_ARROW); 
    WndClass.hIcon=LoadIcon(0, IDI_WINLOGO); 
    WndClass.lpszMenuName=MAKEINTRESOURCEA(IDR_MENU); 
    WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); 
    WndClass.style=CS_HREDRAW | CS_VREDRAW;
    WndClass.cbClsExtra=0;
    WndClass.cbWndExtra=0;
 
    if(RegisterClassA(& WndClass) == FALSE)
        return 0;
 
    hWnd=CreateWindowA(szClassName, 0, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 
                        CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); 
    ShowWindow(hWnd, SW_SHOW);
    SetTimer(hWnd, 1, 1000, NULL);
 
    while(GetMessageA(& Msg, hWnd, 0, 0) != FALSE){ 
        if(IsWindow(hDlg) == FALSE || IsDialogMessage(hDlg, & Msg) == FALSE){
            TranslateMessage(& Msg); 
            DispatchMessage(& Msg); 
        }
    }
    
    return(Msg.wParam);
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hDC=0;
    PAINTSTRUCT ps;
    static RECT Rect;
    static int t=0;
    static char mass[0x10]={0};
 
    switch(message)
    { 
    case WM_TIMER:
        t++;
        itoa(t, mass, 10);
        hDC=GetDC(hWnd);
        DrawTextA(hDC, mass, -1, & Rect, DT_CENTER | DT_VCENTER);
        ReleaseDC(hWnd, hDC);
        break;
    case WM_PAINT:
        GetClientRect(hWnd, & Rect);
        hDC=BeginPaint(hWnd,& ps);
        itoa(t, mass, 10);
        DrawTextA(hDC, mass, -1, & Rect, DT_CENTER | DT_VCENTER);
        EndPaint(hWnd,& ps);
    break;
    case WM_COMMAND:
        if(LOWORD(wParam) == ID_MES1)
            MessageBoxA(hWnd, "Message 1 was called.\0", "Info...\0", MB_OK | MB_ICONINFORMATION);
        else if(LOWORD(wParam) == ID_MES2)
            MessageBoxA(hWnd, "Message 2 was called.\0", "Info...\0", MB_OK | MB_ICONINFORMATION);
        break;
    case WM_LBUTTONUP:
        DialogBoxParamA(hInstance, MAKEINTRESOURCEA(IDD_DIALOG), hWnd, ModalProc, NULL);
        break;
    case WM_RBUTTONUP:
        if(IsWindow(hDlg) == FALSE){
            hDlg=CreateDialogA(hInstance, MAKEINTRESOURCEA(IDD_LESS), hWnd, ModeLessProc);
            ShowWindow(hDlg, SW_SHOW);
        }
        break;
    case WM_DESTROY:
        KillTimer(hWnd, 1);
        PostQuitMessage(0);
        break;
    default: 
        break;
    }
    
    return(DefWindowProc(hWnd, message, wParam, lParam));
}
 
INT_PTR CALLBACK ModalProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_INITDIALOG:
        SetWindowTextA(hDlg, "Modal Dialog\0");
        return TRUE;
        break;
    case WM_COMMAND:
        if(LOWORD(wParam) == ID_OK)
            EndDialog(hDlg, ID_OK);
        break;
    case WM_CLOSE:
        EndDialog(hDlg, ID_OK);
        break;
    default:
        break;
    }
 
    return FALSE;
}
 
INT_PTR CALLBACK ModeLessProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_INITDIALOG:
        SetWindowTextA(hDlg, "Modeless Dialog\0");
        return TRUE;
        break;
    case WM_COMMAND:
        if(LOWORD(wParam) == ID_OK)
            DestroyWindow(hDlg);
        break;
    case WM_CLOSE:
        DestroyWindow(hDlg);
        break;
    default:
        break;
    }
 
    return FALSE;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 19:47     Диалоговые окна.
Посмотрите здесь:

Диалоговые окна - C++ Qt
Здравствуйте, есть окно, на ней кнопка, которая должна вызывать диалоговое окно. Как создать это самое диалоговое окно в дизайнере,...

Диалоговые окна - Delphi
На форму посетить текстовое поле и набрать в нем текст. При нажатии любой клавиши и клавиши Alt в этом элементе, спросить, надо ли изменять...

QT диалоговые окна - C++ Qt
Создаю диалоговые окна в Qtcreater. Вопрос: как сделать так(как на фото) чтоб в рамках одного окна менялись различные виды(при нажатии...

Диалоговые окна - C++ WinAPI
у меня есть несколько диалоговых окон, а функций работы с ними -одна и что бы при создание окна выполнялись разные действия я создал...

Диалоговые окна - Программирование Android
Всем привет. Совсем недавно начал использовать диалоги,так кое что не могу сделать. При вызове диалога получается, что он выстраивается в...

Диалоговые окна - MS Excel
Здравствуйте. Уважаемые форумчане! Хочу попросить Вашей помощи с созданием встроенных диалоговых окон в Excel'e при помощи Visual Basic....

Диалоговые окна - JavaScript
Написал код, не работает. Подскажите, как исправить? &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; ...

Диалоговые окна! - Программирование Android
Мужики, подскажите, как сделать такое диалоговое окно, в котором бы были поля ввода? Диалоговые окна создаю легко и работаю с ними! А вот...

Диалоговые окна - C++ Qt
Task#3. Custom Dialog Creation. In this task, you have to create dialog which provide to user choose printing settings. For choosing...

диалоговые окна - Lisp
добрый вечер, уважаемые форумчане! вопрос касается диалоговых окон. В книге Полищука и в интернете нашел несколько примеров на...

Диалоговые окна. - Delphi
Вывести диалоговое окно общего назначения с кнопками Yes, No, Cancel, заголовком окна «Проверка» и обеспечить проверку нажатия клавиши Yes....

Диалоговые окна - Delphi
Как сделать из этого пр.кода так чтобы сохраняло и открывало ч.з диалоговые окна , т.е с выбором файлов procedure...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru