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

Неперекрашивается фон окна - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не работает на большом количестве http://www.cyberforum.ru/cpp-beginners/thread59065.html
здравствуйте! Программа сравнивает наличие строки из файла "наречия.txt" в файле "словарь.txt". Причем в "наречия.txt" слова представлены в виде строк : информаш информгаз, а в файле...
C++ вопрос по шаблонам начал разбираться в шаблонах и что то не получается вот код без шаблона все работает #include<iostream> #include<string> #include<vector> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread59062.html
Упорядочить элементы массива с четными индексами в порядке возрастания C++
Задан массив, содержащий N элементов. Упорядочить его элементы с четными индексами в порядке возрастания, а элементы с нечетными индексами в порядке убывания , помогите написать эту программу ,...
C++ Найти сумму кодов всех элементов символьного массива
Привет! не могу никак добить прогу суть такая: Написать функцию, которая для заданного в качестве параметра массива типа char возвращает сумму кодов всех его элементов и заменяет все вхождения...
C++ Никак не разберусь с практической в С++. http://www.cyberforum.ru/cpp-beginners/thread59055.html
НАрод помогите пожалуста с практической. НЕ могу решить, а очень нада срочно. ЗАДАНИЕ Составить программу для сохранения и обработки информации Которая включает разные типы данных: Номер і зміст...
C++ Найти среднее арифметическое Помогите решить задачу на С++ Дана вещественная таблица а . Найти среднее арифметическое положительных элементов таблицы и минимум абсолютного значения элементов. Найти их произведение. подробнее

Показать сообщение отдельно
Даемоник
42 / 42 / 3
Регистрация: 22.05.2009
Сообщений: 97

Неперекрашивается фон окна - C++

26.10.2009, 17:31. Просмотров 967. Ответов 6
Метки (Все метки)

Возможно я пишу не в ту ветку, но мне бы хотелось узнать как можно решить такого рода проблему: я изучаю win32 решил попробовать написать программу, меняющую цвет фона окна.

Компилируется все замечательно, но вот с фоном беда. Когда создается исполняемое окно, то фон пользовательской области неперекрашивается...

Test.cpp
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
#include "Test.h"
 
HBRUSH hBlueBrush,hGreenBrush;
int sw;
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
    char szClassName[]="Main Window";
    char szTitle[]="Программа";
    MSG msg;
    WNDCLASS wc;
 
    ZeroMemory(&wc,sizeof(wc));
    wc.lpfnWndProc=WndProc;
    wc.hInstance=hInst;
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.lpszMenuName="Main";
    wc.lpszClassName=szClassName;
    RegisterClass(&wc);
 
    HWND hwnd=CreateWindow(szClassName,szTitle,
        WS_OVERLAPPEDWINDOW, 10,10,200,100,
        HWND_DESKTOP,NULL,hInst,NULL);
    ShowWindow(hwnd,SW_SHOWNORMAL);
 
    while(GetMessage(&msg,NULL,0,0))
        DispatchMessage(&msg);
    return 0;
}
 
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,
            WPARAM wParam,LPARAM lParam)
{
    switch(msg){
        HANDLE_MSG(hwnd,WM_COMMAND,OnCommand);
        HANDLE_MSG(hwnd,WM_CREATE,OnCreate);
        HANDLE_MSG(hwnd,WM_PAINT,OnPaint);
        HANDLE_MSG(hwnd,WM_DESTROY,OnDestroy);
        default:
            return (DefWindowProc(hwnd,msg,wParam,lParam));
        }
}
 
BOOL OnCreate(HWND,LPCREATESTRUCT)
{
    hBlueBrush=CreateSolidBrush(RGB(100,100,255));
    hGreenBrush=CreateSolidBrush(RGB(100,255,100));
    return TRUE;
}
 
void OnCommand(HWND hwnd, int id, HWND, UINT)
{
    switch(id)
    {
        case MI_BLUE:
            sw=1;
            InvalidateRect(hwnd,NULL,TRUE);
            break;
        case MI_GREEN:
            sw=2;
            InvalidateRect(hwnd,NULL,TRUE);
            break;
        case MI_EXIT:
            DestroyWindow(hwnd);
    }
}
 
void OnPaint(HWND hwnd)
{
    PAINTSTRUCT ps;
    HDC hdc=BeginPaint(hwnd,&ps);
    if(1==sw)
        FillRect(hdc,&ps.rcPaint,hBlueBrush);
    if(2==sw)
        FillRect(hdc,&ps.rcPaint,hGreenBrush);
    EndPaint(hwnd,&ps);
}
 
void OnDestroy(HWND)
{
    PostQuitMessage(0);
}

Test.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
#include <windowsx.h>
 
#define MI_BLUE 100
#define MI_GREEN 101
#define MI_EXIT 102
 
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL OnCreate(HWND, LPCREATESTRUCT);
void OnPaint(HWND);
void OnCommand(HWND,int,HWND,UINT);
void OnDestroy(HWND);

Test.rc
C++
1
2
3
4
5
6
7
8
9
10
#include "Test.h"
 
Main Menu{
        POPUP "&Фон"{
                MENUITEM "&Blue",MI_BLUE
                MENUITEM "&Green",MI_GREEN
                MENUITEM SEPARATOR
                MENUITEM "&EXIT",MI_EXIT
                }
}


Скрины программы:
0
Миниатюры
Неперекрашивается фон окна   Неперекрашивается фон окна   Неперекрашивается фон окна  

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