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

Прозрачный фон. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как освободить память? http://www.cyberforum.ru/cpp-beginners/thread121661.html
подскажите как правильно освободить память,спасибо заранее))) #include "stdafx.h" #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> struct zap //объявление...
C++ Как правильно проинициализировать массив вручную? Здрасти. как правильно проинициализировать массив в ручную? а то у меня ошибка main.cpp|60|error: expected primary-expression before '{' token| std::string capitalDigit(int& number){ const... http://www.cyberforum.ru/cpp-beginners/thread121635.html
распаковка gzip, deflated ответа сервера C++
Пишу простой чат, который работает через html основу. Столкнулся с проблемой: в запросе серверу отправляю Accept-Encoding: gzip, deflated и дальше не могу распаковать содержимое ответа. Пробовал...
Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. C++
Приветик всем.Немогли бы вы мне написать эти 2 програмки Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы. Написать и протестировать функцию,...
C++ В заданном двумерном массиве n*m поменять местами строку с номером k столбец с номером p этого массива http://www.cyberforum.ru/cpp-beginners/thread121590.html
Помогите с задачей! В заданном двумерном массиве n*m поменять местами строку с номером k столбец с номером p этого массива.
C++ зачем нужен "&" ? Встретил в книге Р.Лафоре в примере непонятную мне вещь. зачем нужен "&" в данной конструкции? Distance& dist = *(new Distance) почему бы не написать Distance dist = *(new Distance) подробнее

Показать сообщение отдельно
ssashas
0 / 0 / 0
Регистрация: 17.03.2009
Сообщений: 20

Прозрачный фон. - C++

26.04.2010, 21:06. Просмотров 1384. Ответов 6
Метки (Все метки)

Здравствуйте, помогите пожалуйста. Моя программа создает диалоговое окно но оно создается с прозрачным фоном и почему-то при нажатии на кнопку новый объект ничего не происходит. Код программы:
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#include <windows.h>
#include <stdio.h>
#include "resource.h"
 
UINT cur=1; 
int x0,y0,rad0,r0,g0,b0;
HINSTANCE hi0;
 
class Oval
{
private: int xc,yc,rad,R,G,B;
        
public:
     static int n;
    Oval(){ xc=0; yc=0;rad=0;R=0;G=0;B=0;}
    void set(int x, int y, int ra, int re, int gr, int bl)
    {
        xc=x; yc=y; rad=ra; R=re; G=gr; B=bl;
    }
 
    double perimetr()
    {
        return 3.14*2*rad;
    }
    double ploshchad()
    {
        return 3.14*rad*rad;
    }
    void set_colour(int nR,int nG,int nB)
    {
        R=nR; G=nG; B=nB;
    }
 
    void Init(int nxc,int nyc, int nrad, int nR,int nG,int nB)
    {
        xc=nxc; yc=nyc; rad=nrad; R=nR; G=nG; B=nB;
    }
 
    void display(HDC hdc, int cur)
    {
        HBRUSH b1,b0;
        b1=CreateSolidBrush(RGB(R,G,B)); // кисти
        b0=(HBRUSH)SelectObject(hdc,b1); // текущая кисть
        Ellipse(hdc,xc,yc,xc+2*rad,yc+2*rad);
        wchar_t buf[20];
        swprintf(buf,L"%d",cur);
        TextOut(hdc,xc,yc,buf,wcslen(buf));
        SelectObject(hdc,b0);
        DeleteObject(b1);
    }
 
};
int Oval::n=0;
Oval mas[20];
 
int WINAPI ab(HWND hwnd,int cmd,WPARAM wp,LPARAM lp)
{
    switch(cmd)
    {
    case WM_INITDIALOG:
        {
        SetDlgItemInt(hwnd,CHISLO,cur,true);        
        SetDlgItemInt(hwnd,X,100,true);
        SetDlgItemInt(hwnd,Y,200,true);
        SetDlgItemInt(hwnd,Radius,20,true);
        SetDlgItemInt(hwnd,NRed,255,true);
        SetDlgItemInt(hwnd,NGreen,255,true);
        SetDlgItemInt(hwnd,NBlue,255,true);
        }
        
    case WM_CLOSE:
        {
        x0=GetDlgItemInt(hwnd,X,NULL,true);
        y0=GetDlgItemInt(hwnd,Y,NULL,true);
        rad0=GetDlgItemInt(hwnd,Radius,NULL,true);
        r0=GetDlgItemInt(hwnd,NRed,NULL,true);
        g0=GetDlgItemInt(hwnd,NGreen,NULL,true);
        b0=GetDlgItemInt(hwnd,NBlue,NULL,true);
        EndDialog(hwnd,3);
        
        return 1;
        }
        case WM_COMMAND:
        if(LOWORD(wp)==IDOK)
        {
            SendMessage(hwnd,WM_CLOSE,0,0);
            return 1;
        }
        return 0;
    }
    return 0;
};
 
 
 
int WINAPI fn(HWND hwnd,int cmd,WPARAM wp,LPARAM lp)
{
    switch(cmd)
    {
    case WM_INITDIALOG:
    { 
        SetDlgItemInt(hwnd,Nomer,1,true);
        SetDlgItemInt(hwnd,Red,0,true);
        SetDlgItemInt(hwnd,Green,0,true);
        SetDlgItemInt(hwnd,Blue,0,true);
 
        return 1;
    }
    case WM_COMMAND:
    {
        switch (LOWORD(wp))
        {
            case New_item:
            {
                cur=GetDlgItemInt(hwnd,Nomer,NULL,true);
                int r=DialogBox(hi0,MAKEINTRESOURCE(DIALOG2),NULL,(DLGPROC)ab);
                mas[cur].set(x0,y0,rad0,r0,g0,b0);
            }
            case Set_color:
            {
                int nr=GetDlgItemInt(hwnd,Red,NULL,true);
                int ng=GetDlgItemInt(hwnd,Green,NULL,true);
                int nb=GetDlgItemInt(hwnd,Blue,NULL,true);
                mas[cur].set_colour(nr,ng,nb);
            }
 
        }
        return 1;
    }
    case WM_CLOSE:
    {
        EndDialog(hwnd,1);
        return 0;
    }
 
    case WM_SIZE:
    {
            InvalidateRect(hwnd,NULL,RDW_ERASE);
        return 1;
    }
   
    case WM_PAINT:
    {               
        PAINTSTRUCT ps;
        HDC hdc=BeginPaint(hwnd, &ps);
                
        RECT rt;
        GetClientRect(hwnd, &rt);   
        
        for(int i=0;i<Oval::n;i++)
            mas[i].display(hdc, i);
 
 
 
        EndPaint(hwnd, &ps);
        return 1;
    }
 
    }
    return 1;
}
 
 
int WINAPI WinMain(HINSTANCE hi,HINSTANCE,LPSTR,int) 
{
    hi0=hi;
    return DialogBox(hi,MAKEINTRESOURCE(DIALOG),NULL,(DLGPROC)fn);
}
Добавлено через 5 часов 0 минут
Помогите пожалуйста

Добавлено через 2 часа 41 минуту
У диалогового окна остаются видны только кнопки и эдиты остальное прозрачно.

Добавлено через 22 часа 1 минуту
,,,,,,,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru