Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2013, 15:19   #1
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию Игра Сапер

Подскажите пжалуста как перерисовать окно чтобы главное окно стиралось и создавалось новое под
кнопки.

Код:
#include <windows.h>
#include <gdiplus.h>
#include "resource.h"
 
#define SAP_WIDTH 10            //Ширина поля
#define SAP_HEIGHT 10           //Высота поля
#define SAP_TOP 0      //Отступ сверху
#define SAP_LEFT 0         //Отступ слева
#define ID_BUTTON 10000
#define ID_BUTTON1 10
#define IDD_DIALOG1                     102
#pragma comment(lib,"gdiplus.lib")
#define IDB_BITMAP1                     101
using namespace Gdiplus; 
 
HINSTANCE hinst;
GdiplusStartupInput gdiplusstartupInput;
 
LRESULT CALLBACK WindowProc (HWND, UINT, WPARAM, LPARAM);
HWND button;
HWND Static;
ULONG_PTR gdiplustokend;
TCHAR szClassName[] = TEXT("Mywindow");
TCHAR MyClassName[] = TEXT("Mywindow");
LRESULT CALLBACK WindowProc (HWND, UINT, WPARAM, LPARAM);
 
void OnPaint(HDC hdc)
{
    Graphics graphics(hdc);
    SolidBrush brush(Color(255,255,0,0));
    FontFamily fontfamily(TEXT("Times New Roman"));
    Font font(&fontfamily,55,FontStyleRegular,UnitPixel);
    PointF pointf(50.0f,5.f);
    Bitmap* picture=Bitmap::FromResource(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));
    graphics.DrawImage(picture,0,0);
    delete[] picture;
    graphics.DrawString(TEXT(" Игра\nСапер"),-1,&font,pointf,&brush);
}
int WINAPI WinMain (HINSTANCE hinst,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)
 
{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;
 
    wincl.hInstance = hinst;
    wincl.lpszClassName = MyClassName;
    wincl.lpfnWndProc = WindowProc;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
 
    if (!RegisterClassEx (&wincl))
        return 0;
 
  hwnd=CreateWindowEx(0,szClassName,TEXT("GAME"),WS_MINIMIZEBOX,600,250,310,405,NULL,NULL,NULL,NULL);
  /*if(hwnd==NULL)
        return -1;*/
  GdiplusStartup(&gdiplustokend,&gdiplusstartupInput,NULL);
  button=CreateWindow(TEXT("button"),TEXT("Пуск"),WS_VISIBLE|WS_CHILD,100,300,75,25,hwnd,(HMENU)ID_BUTTON,hinst,NULL);
 button=CreateWindow(TEXT("button"),TEXT("Выход"),WS_VISIBLE|WS_CHILD,100,330,75,25,hwnd,(HMENU)ID_BUTTON1,hinst,NULL);

CreateWindow(L"static",NULL,WS_VISIBLE|WS_CHILD|SS_BITMAP,10,10,700,700,hwnd,NULL,NULL,NULL);
    ShowWindow (hwnd,nFunsterStil);
 
    while (GetMessage (&messages, NULL, 0, 0))
    {
 
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
 
    return messages.wParam;
}
 
LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    static int sx,sy;
    switch(message)
    {
    case WM_DESTROY:
        PostQuitMessage(0); // сообщение о выходе из цыкла обработки. Закрытие программы.
        break;
    case WM_COMMAND:
        switch (wParam)
        {
        case ID_BUTTON1:
            DestroyWindow(hWnd); break; 
            break;
    case ID_BUTTON:
    for(int x=0; x<SAP_WIDTH; x++)
        for(int y=0; y<SAP_HEIGHT; y++){
            //Создаем кнопки с индентификаторами от 1 до ...
            CreateWindowEx(0,TEXT("BUTTON"),TEXT(""),
                WS_CHILD | WS_VISIBLE | BS_BITMAP, SAP_LEFT+x*20,SAP_TOP+y*20,20,20,
                hWnd,(HMENU)(x+y*SAP_WIDTH+1),NULL,0);
        }
        break;
    default: return 0;
        }
        
        case WM_SIZE: 
sx = LOWORD(lParam); 
sy = HIWORD(lParam); 
break; 
 
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        OnPaint( hdc);
        EndPaint(hWnd,&ps);
    break;
    default:
        return DefWindowProc(hWnd,message,wParam,lParam);
    }
    return 0;
}
Winapi
mixon-21 вне форума Ответить с цитированием
Старый 22.11.2013, 18:17   #2
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

ЧТО НИКТО незнает?????
mixon-21 вне форума Ответить с цитированием
Старый 22.11.2013, 19:56   #3
mixon-21
Я только Учусь
Форумчанин
 
Аватар для mixon-21
 
Регистрация: 06.03.2013
Сообщений: 193
По умолчанию

С перерисовкой окна я разобрался подскажите пожалуйста как раскидать по кнопкам мины????????
mixon-21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошику в коде (игра Сапер) student14 Помощь студентам 4 17.05.2012 14:36
сапер:) dimasly Общие вопросы Delphi 1 16.05.2012 20:40
игра сапер julia_g Помощь студентам 0 19.11.2011 20:28
Сапер Си jimmywoodes Помощь студентам 0 22.05.2010 17:16
Сапер на С jimmywoodes Общие вопросы C/C++ 0 22.05.2010 15:31