Код:
#define IDB_BITMAP1 101
#define _UNICODE
#include <Windows.h>
#include<tchar.h>
#include"resource.h"
#include <winuser.h>
HWND hBitmap ;
TCHAR szClassWindow[]=TEXT("Сапер.bmp");
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE hinst;
int WINAPI WinMain(HINSTANCE hinst,HINSTANCE hPrev,LPSTR lpszCmdLine,int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASSEX wc;
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;//стиль класса окна
wc.lpfnWndProc =WindowProc;
wc.cbClsExtra =0;
wc.cbWndExtra =0;
wc.hInstance =hinst;//дескриптор данного приложения
//загрузка стандартной иконки
wc.hIcon =LoadIcon(NULL, IDI_APPLICATION);
//загрузка стандартного курсора
wc.hCursor = LoadCursor(NULL,IDC_HAND);
//заполнение окна белым цветом
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc.lpszMenuName =NULL;// приложение не содержит меню
wc.lpszClassName =szClassWindow;//имя класса окна
wc.hIconSm =NULL;
if(!RegisterClassEx(&wc))
return 0;
hwnd=CreateWindowEx(
0,
szClassWindow,//имя класса
TEXT("Каркас приложение Windows"),//
WS_OVERLAPPEDWINDOW|SS_BITMAP,//
350,
400,
750,
459,
NULL,
NULL,
hinst,
NULL);
ShowWindow(hwnd,nCmdShow);
HMENU MainMenu;
HMENU SubMenu;
MainMenu = CreateMenu();
SubMenu = CreateMenu();
AppendMenu(MainMenu,MF_POPUP,(UINT_PTR)SubMenu,TEXT("Меню"));
AppendMenu(SubMenu, MF_STRING, 1, TEXT("Новичёк"));
AppendMenu(SubMenu, MF_STRING, 2, TEXT("Любитель"));
AppendMenu(SubMenu, MF_STRING, 3, TEXT("Професионал"));
AppendMenu(SubMenu, MF_STRING, 4, TEXT("Пользователь"));
AppendMenu(MainMenu, MF_STRING, 5, TEXT("Выход"));
ATOM MyRegisterClass (HINSTANCE);
SetMenu(hwnd, MainMenu);
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMessage, WPARAM wParam,LPARAM lParam)
{
HDC hDC;
RECT rect;
PAINTSTRUCT ps;
HBITMAP hBitmap;
static HDC membit;
static BITMAP bm;
switch(uMessage)
{
case WM_CREATE:
hBitmap=LoadBitmap(hinst, MAKEINTRESOURCE(IDB_BITMAP1));
GetObject(hBitmap, sizeof(bm),&bm);
hDC=GetDC(hWnd);
membit=CreateCompatibleDC(hDC);
SelectObject(membit,hBitmap);
ReleaseDC(hWnd,hDC);
break;
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);
BitBlt(hDC,10,10,bm.bmWidth,bm.bmHeight,membit,50,50,SRCCOPY);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
KillTimer(hWnd,1);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uMessage,wParam,lParam);
}
return 0;
}