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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В целочисленном массиве найти наиболее длинную цепочку одинаковых подряд стоящих элементов http://www.cyberforum.ru/cpp-beginners/thread320323.html
В целочисленном массиве найти наиболее длинную цепочку одинаковых подряд стоящих элементов (вывести на экран длину такой цепочки и элемент ее составляющий) Помогите пожалуйста сделать а то к...
C++ В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр Посмотрите что не так с моей задачей В существующем на диске файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр. Заменить все символы этой... http://www.cyberforum.ru/cpp-beginners/thread320320.html
C++ И снова вопрос по коду
Код готов, но опять как я понял какая то фигня, из-за которой прога не верно работает Задание: Найти номера чётных элементов #include <stdio.h> #include <conio.h> main() { int a, b, i,...
C++ умные люди,помогите пожалуйста!))) зарание спасибо)
помогите выполнить это задание: 1. В орграфе без циклов, заданном матрицей смежности с весами (длинами) дуг, найти критический путь, то есть путь наибольшей длины, идущий от первой вершины до...
C++ Объяснить программу http://www.cyberforum.ru/cpp-beginners/thread320294.html
объясните пожалуйста программу,что делается на каждом этапе.struct sp{ int inf; sp* adr;} sp *fst,*lst,*tmp; tmp=(sp*)malloc(vl); int vl=sizeof(sp); tmp->inf=random(100); tmp->adr=NULL;...
C++ Контейнеры Здравствуйте. Помогите написать программу на С, с этим языком не знаком почти, а контейнеры вообще не понимаю. В общем беда полная.... 1. Создать контейнер, содержащий объекты пользовательского... подробнее

Показать сообщение отдельно
AnnG
Сообщений: n/a

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

15.06.2011, 19:47. Просмотров 789. Ответов 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;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru