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

Можно ли рисовать в окне нажатием кнопки? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GRF & DEV CPP http://www.cyberforum.ru/cpp/thread336726.html
Доброго времени суток!Подскажите как в программе на Си/Си++ использовать графы созданные в программе GraphEdit???Нужно захапать поток с web камеры и обрабатывать отдельные кадры,при этом скорость...
C++ Доступ к HDD Подскажите пожалуйста, можно ли как нить узнать есть ли на жестком диске не размеченная область и получить к ней доступ? Ведь проги для работы с HDD видят, что есть не размеченная область. http://www.cyberforum.ru/cpp/thread335901.html
C++ Делить на ноль нельзя?
Я в курсе, нельзя. Но это было бы полбеды. Проблема в том, что судя по всему, нельзя делить не только на ноль. Есть интересная задача и неинтересное #include <iostream> using namespace std; int...
неявное преобразование в C++ C++
Здравствуйте! При работе с проектом на Qt, компилятор выдал ошибку: "undefined reference to vtable". Порывшись в интернете, нашел статью, где рассказывается, что это все происходит из-за...
C++ Критика архитектуры набора планов http://www.cyberforum.ru/cpp/thread335057.html
Требуется создать систему похожую на Hierarchical task network то есть некоторая библиотека планов и каждый план может содержать подпланы, получать результаты выполнения подпланов и передавать их...
C++ Решение игры "вирус"? В инете есть много флеш игр на тему вирусов. Поле поделено на квадраты из нескольких цветов и нужно всё заразить на наименьшее число ходов. Хочу потренироваться находить решения таких задач. Для... подробнее

Показать сообщение отдельно
SDmaN
54 / 51 / 2
Регистрация: 22.07.2011
Сообщений: 436
28.07.2011, 13:04  [ТС]
Вот:

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
#include <windows.h>
#define ID_BUTTON1 3000
 
BOOL RegClass(WNDPROC, LPCTSTR, UINT);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
HINSTANCE hInstance;
 
char szClass[] = "LcBotClass";
char szHpText[] = "Текст";
 
int WINAPI WinMain (HINSTANCE hInst,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszCmdLine,
                    int nCmdShow)
 
{
    HWND hwnd;               
    MSG msg;            
    hInstance = hInst;
    hwndGlobal = hwnd;
    
    if(!RegClass(WndProc, szClass, COLOR_WINDOW)) return FALSE;
    
 
     hwnd = CreateWindow(
        szClass,
        "LC bot by SDmaN",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        640,
        480,
        0,
        0,
        hInstance,
        NULL
        );
        
     if(!hwnd) return FALSE;
     
     while(GetMessage(&msg, 0, 0, 0)) DispatchMessage(&msg);
     return msg.wParam;
     }
 
BOOL RegClass(WNDPROC Proc, LPCTSTR szName, UINT brBackground)
{
     WNDCLASS wc;
     wc.style = CS_HREDRAW | CS_VREDRAW;
     wc.cbClsExtra = wc.cbWndExtra = 0;
     wc.lpfnWndProc = Proc;
     wc.hInstance = hInstance;
     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
     wc.hCursor = LoadCursor(NULL, IDC_ARROW);
     wc.hbrBackground = (HBRUSH)(brBackground + 1);
     wc.lpszMenuName = NULL;
     wc.lpszClassName = szName;
     return (RegisterClass(&wc)!= 0);
}
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
 char szHpText[] = "Êîëè÷åñòâî ÕÏ ïåðñîГ*Г*Г¦Г*: ";
 char szMpText[] = "Êîëè÷åñòâî ГЊГЏ ïåðñîГ*Г*Г¦Г*: ";
 static HWND hButton;
 switch(msg)
 {
 
    case WM_CREATE:
        {
         hButton = CreateWindow("button",
         "ÑòГ*ðò",
         WS_CHILD | WS_VISIBLE,
         400,
         20,
         150,
         30,
         hwnd,
         (HMENU)ID_BUTTON1,
         hInstance,
         NULL
         );
        }
    
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hwnd, &ps);
            SetTextColor(hdc, RGB(0, 0, 0));
            SetTextAlign(hdc, 0);
            TextOut(hdc, 20, 20, szHpText, strlen(szHpText));
            TextOut(hdc, 20, 50, szMpText, strlen(szMpText));
            EndPaint(hwnd,&ps);
            
            return 0;
        }
    case WM_COMMAND:
        {
        switch(LOWORD(wParam))
        {
         case ID_BUTTON1:
            {
             PAINTSTRUCT ps1;
            HDC hdc1 = BeginPaint(hwnd, &ps1);
            SetTextColor(hdc1, RGB(0, 0, 0));
            TextOut(hdc1, 60, 90, szHpText, strlen(szHpText));
            EndPaint(hwnd,&ps1);
            }
        }
        }    
             
       case WM_DESTROY:
     {
     PostQuitMessage(0);
     return 0;
     }
     }
return DefWindowProc(hwnd, msg, wParam, lParam);
}
И ещё вот нарыл в интернете:

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
#include <windows.h> 
 
 
 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
char szProgName[]="Progname";
 char szText[]="";
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
 
HWND hWnd; 
 MSG lpMsg; 
 WNDCLASS w;
 
 
 w.lpszClassName=szProgName;
 w.hInstance=hInstance;
 w.lpfnWndProc=WndProc;
 w.hCursor=LoadCursor(NULL, IDC_ARROW);
 w.hIcon=LoadIcon(NULL, IDI_APPLICATION); 
 w.lpszMenuName=0;
 w.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
 w.style=CS_HREDRAW|CS_VREDRAW;
 w.cbClsExtra=0;
 w.cbWndExtra=0;
 
 
 if(!RegisterClass(&w))
 return 0;
 
 
 hWnd=CreateWindow(szProgName, //Èìÿ ïðîãðГ*ììû
 "Keyboard Code Viewer - 1.0", 
 WS_OVERLAPPEDWINDOW, 
 100, 
 100, 
 100, 
 80, 
 (HWND)NULL,
 (HMENU)NULL, 
 (HINSTANCE)hInstance, 
 (HINSTANCE)NULL); 
 
 
 ShowWindow(hWnd, nCmdShow);
 
 UpdateWindow(hWnd);
 
 
 
while(GetMessage(&lpMsg, NULL, 0, 0)) { 
 TranslateMessage(&lpMsg); 
 DispatchMessage(&lpMsg); 
 }
 return(lpMsg.wParam); 
 }
 
 
 LRESULT CALLBACK WndProc(HWND hWnd, UINT messg, 
 WPARAM wParam, LPARAM lParam)
 {
 HDC hdc;
 
 
 switch(messg)
 {
 
unsigned int key;
 
 
 case WM_KEYDOWN:
 key=wParam; 
 _itoa(key, szText, 10); 
 hdc=GetDC(hWnd); 
 TextOut(hdc, 10,10, szText, 2);
 break;
 
 
 case WM_DESTROY:
 PostQuitMessage(0);
 break;
 
default:
 return(DefWindowProc(hWnd, messg, wParam, lParam));
 }
 return 0;
 }
Принцып почти такой же как и у моей программы, только различие в том, что в последнем примере программа преобразует код нажатой клавиши в строку.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru